Just include the sdl_gfx unit. It comes with freepascal, don't know about delphi.

It has the rotozoomSurface function which probably does what you want. It's defined like this:
function rotozoomSurface( src : PSDL_Surface; angle : double; zoom : double; smooth : integer ) : PSDL_Surface;
so it'll return a newly instantiated surface that's rotated about the center.

So, if I remember correctly,
dest := rotozoomSurface(src, angle, 1, 1);
//do something with dest
SDL_FreeSurface(dest);