How to make a perfect curve
You can use Relax function that comes with LoopTools add-on. The add-on comes with Blender so you just need to activate it in the User Preferences (ctrl+alt+u). The function is then accessible from Specials menu (w), LoopTools submenu. It can be used with edge loops selected. Note all the options in the t panel that you can change. 



Space function might also be useful: