Delete your support loops/unecessary geometry so that you can definite the shape and silhouette much easier. Then from that point, you can turbosmooth by smoothing groups to add geometry, or add manual support loops and go from there. The top triangular detail is well done :)
@silvianrusso just get rid of those orphan loops and u should be fine. But keep in mind that that cilinder u just booleaned could use some more segments. Like someone mentioned above, u can terminate loops almost anywhere on flat surfaces. Cheers! :)
Add more loops on the cylinder, the one you have currently moves down quite far. Maybe even start with more segments on the cylinder. More loops everywhere really. Also try p-sub (Shift+Tab) instead of normal subdiv (tab), unless you already are.
One reason that just came to mind for me to "justifiably" use epoly is when I am just only making edge loops for my mesh, but even than I think its still better to just keep it at the base level and make a copy for the edge loop process.