Hi poogle,
Is this for a game? If it's for a high resolution render, you'll want to put tight bevels on the areas that you want to keep sharp, then smooth your object.
If it's for a game, you can automatically make certain edges over a given angle hard. Go to Normals>Set normal angle, and play with this value. Looking at your image, I would start around 50 degrees.
Imagination is more important than knowledge.