There are so many techniques and musical styles, even without being an expert in all of them (or any of them) it's easy to see you're not going to get a "magic fix" out of this discussion. Maybe some useful tips:
When I want something to sound as if it's in a certain room or space, I use an impulse based convolution reverb (like Perfect Space, in my case, a Waves offering).
When I want something to sound like a pleasing reverb I go for an algorithmic type and I really like BReverb and use it a lot.
Like John, I use the first type as an insert and the second on a send bus. If it's on a send bus I keep it 100 percent wet (so in BReverb that means turning off the dry).
Like you, I don't generally put reverb on bass elements (unless the reverb is the first type and the drumbus or entire mix are going through there).
It's a good idea to experiment with the amount and the level of predelay, especially in algorithmic reverbs where you just want them to make another part "shine" it makes a lot of difference in the sound. Check the extra parameters in BReverb by switching the tabbed menu up top.
I generally use "a couple" of reverbs on a complete project. I try to keep it simple and also feel it's better for the mix to not use too many different ones. I will usually have a separate one for the lead vocal and one for the snare.
I like starting my lead vocal verb with the "a capella vox" preset. I always edit it right away but it's somehow become the starting point on my way to better things.
I sometimes create an artificial parallel "room" bus for the drums with a convolution verb if the plug or loop or actual recording didn't have one. I slam it with something like an 1176 or anything that fits at that time, and mix it with the regular drums. I think this is a very common trick but since you're asking for tips...
EDIT:
Also as general advice on compression and mixing - if you're thinking your mix sounds flat, that's probably because you used too much compression. I don't know this for sure but it's definitely a common problem. Nowadays, in my humble opinion, compressors (especially software ones) don't really have the same function anymore. They should mostly be used because you want a certain sound character that's derived from the effect of compression or from that specific compressor. If your issue is fluctuating dynamics, you need to be less lazy and automate the **** out of your mix ;)
Really, you'd be shocked to see the amount of automation that goes into professional productions, especially on things like lead vocal and bass. You will not only keep a more dynamic and less flattened sound, but you will also be able to adjust individual dynamic differences, not to mention your compressors can now be used purely for the sound they impart (as long as you used clip envelopes, rather than volume fader envelopes).