Gimp has a great rotate tool which will align your image.
First do not use the Image -> Transform -> Rotate, use the Rotate tool in the toolbox
Two ways
Click on the rotate tool and you get a dialog box where you can enter an angle
or
Click on the rotate tool
Open the tool settings tab
Under 'direction' select 'Corrective (backward)'
Under 'Preview' select 'image + grid'
Now click in the image and a grid will appear. Align the grid with a vertical (or horizontal)
Click on rotate in the rotate dialog and the adjustment will be made.
A screenshot which might help
http://www.imageno.com/af0kqdqaacu6pic.htmlAlso there is the very first "Meet The Gimp" episode which deals with this. Well worth downloading and watching even though it is a couple of years old now.
http://meetthegimp.org/episode-1-preparing-an-image-for-the-web/best of luck