How to round a mesh?
The standard way to deal with this is to help out the subsurface modifier do its job. You can, for example


Mark your desired hard edges as creases prior to using the subsurf modifier.


Or 


You can just create edge loops near your curves to control how sharp they should be, so that subsurf doesn't oversmooth them.


See this youtube video "Tutorial: Sharp Edges on Smooth Objects"
https://www.youtube.com/watch?v=HgzmSnQt0bQ

I'm not a Blender expert in any way, but I hope it helps.