i pretty much disagree with everything said so far:
If your tracks need it, then they should be compressed (hopefully non-destructively) individually.
If you are using midi (drum machines, sound canvas, samplers etc..) to create your music, you can compress the velocity of the notes played in midi such that you get the dynamic range that you are looking for using midi before recording the midi tracks to analog. Then (if you need it at all) you won't have to compress as much.
Think about this:
If you mix the whole of the sound together, then the offending instrument is causing all the other instrument's levels to be reduced as well, so you haven't accomplished the goal of mixing which is to get each instrument to stay in its proper place in the song.
If you record well, and your musicians are good at their craft, you won't need to compress as much... on the guitar I can pull that off, but on the bass I'm all over the place so I have to compress the snot out of it. What I don't want is the bass compression to reduce the level of the kick, string, vocals, guitar, etc... so I compress it individually.
Once you've compressed the individual tracks that need it, and have mixed your tune. The compression you apply to the whole mix is a part of ... mastering. You'll need a multi-band compressor for that. I use Wave's C4 compressor, which has 4 bands such that the 1. low, 2. low-mid, 3. mid & upper-mid, and 4. high sections are compressed pretty-much individually.
ps. it may be different for non-urban music, but i never add reverb before i compress. i want to make those vocals sit pretty all by themselves before i go splashing effects around.
ps2. someone asked about plugins. I have waves, dsp-fx, and ultrafunk. I like the ultrafunk single-band compressor and EQ. I like the dsp-fx acoustiverb and studioverb, and I like the waves ultramaximizer and C4 compressor. I also use the Antares Autotune because I don't have perfect pitch, and as of yesterday the SpectR-Pro spectrum analyzer.