The simplest and quickest way I use (other than just beveling everything) is to just insert edge loops along the edges I want to round when smoothed. That works alright as long as I'm going to be smoothing the model, but even then it can produce some ugly results, particularly on more complex corners.
Sometimes I will merge the edge vertices together to create edgeloops flowing around the border edges of each face.
If I'm working on something nice and flat sometimes I'll bevel one set of corners, extrude them inwards then bevel the other set of edges.
More complex shapes like the one below are where some of these start to break down, especially a bevel. On more complex models I'll occasionally just convert to subD then use partial creases on the edges.
If you bevel all the edges you need to on something like this, you get all kinds of nasty n-gons. It's even worse if you use more segments on the bevel.
Now, while I was throwing that together it occured to me that maybe I should include all the interior edges on the bevel to carry the new edges all the way through the model. With a couple segments that actually works pretty well, I'll have to try it on something more complex later.
So, tell me how you do it, how to improve my methods, how bad I am, etc...I want to hear it all.