Because of shrinking budgets these days, I find myself doing a lot of mastering for my mix projects. How do I approach this? I stay fairly conservative with my average (or RMS) levels with my mix, with the peaks staying between -1dBFS and -6dBFS. I mix at a pretty low level so that when I crank my speakers, the mix is pretty slammin', but is still cohesive at lower volumes.
Once I'm finished with the mix(es) for a project, I usually create a new Pro Tools project specific for mastering applications. There I'll get a little crazy with automating peaks down a little bit in spots so that I can boost my overall level even 1-3dB further PRIOR to compression. After that, I'll apply whatever "shimmery" processing (read: EQ or global reverbs -- although 'verb is usually rare at this stage).
Then I'll get into compression. Usually, I'll have 2-3 layers of compression, each boosting the level a little bit. Several compressors in series give a much more natural sound than one compressor that's slammed. I may have my first compressor catching the peaks with some mild make-up gain, with the second compressor affecting more of the "meat" of the track also with a touch of make-up gain, and then add a mastering limiter toward the end to boost the level up to "commercial loudness".
I'll use the same principle for EQ as well. I'd prefer to have one EQ to clean up my high end, one for the mid range, and one for the low end on the track. That way, high end boosts or cuts in one band won't be affecting the low end boosts or cuts on that specific plugin or hardware EQ.
The concept of layering these devices and processors took a bit of trial and error, but I find that it gives you a much more natural result without squashing the dynamic range. It's really like mixing, to be honest in that you're using several layers of processing to create a single, unified sound.
Hope this helps.