Personally I'd use Subdivision. They act like a cross between nurbs and polygons.
They are quite easy to use as you use a low polygon model with a few vertices and faces to create a high polygon look.
go to:
Create > Subdiv Primitives > Cube
You can manipulate it in a similar way to a polygon model but it has a second mesh which is higher resolution.
You'll find the tools for Subdivision surfaces under;
Modelling > Subdiv Surfaces
In there you find "Full Crease Edge/Vertex" and "Partial Crease Edge/Vertex" which will help you get the nice hard edges while the secondary subdivision object will give you some nice curves.
You may find it the quickest way to create high end results.
You can also use:
Polygons > Smooth Proxy > Options
You can alter the subdivision levels in the options box. It behaves in almost the same way as standard subdivision, but it seems to process much faster, whereas standard subdivision can cause you machine to slow down. It's happened with three machines I've used in the past.
Or you could use nurbs, but I don't know how to do that as subdivisions works fine for me : )