, the way I do it is to:
- find two points that should be aligned vertically
- draw a vertical guide roughly where they will be after rotation
- draw a horizontal line about half way between them
- transform the layer (CTRL+T)
- move the center point to the intersection of the guides
- rotate the layer, using the type-in box at the top (not your mouse), by small increments
- when you're happy commit the change, center the layer, and crop off any white pixels
It's a few steps but it's actually pretty quick and allows you to get perfect results every time.
Otherwise, you can try the straighten tool in Adobe Camera Raw when you convert from RAW into Photoshop but it's less accurate then the method above when your subject has razor sharp lines like this photo does.