Although most of us produce, compose and record music in different ways, the general trend is to rationalise mastering down to a few key processes and techniques. It's not rocket science, but does require a different approach to the tracking/capturing and mixing of the music.
It's best to, of course, listen with a really critical ear to your mix in order to find sonic problems that others may find with your raw mix. Ill-defined bass, aggressive mids, lack of air and presence, for example. The first step of mastering is to really identify these. A good engineer will take into account how a master will translate when played back on different systems or in different listening environments. That's why it's good to have a few different pairs of monitors or headphones in order to hear this... don't, and I stress don't, master on one pair of headphones or speakers especially if they're low end and crappy. You'll need a setup that offers an extended frequency range, low noise floor. Bass representation is a must and critical in the mastering process... if your system doesn't really represent the 20-100khz frequency range that well you'll benefit from buying a decent sub. Also, listen and compare to commercial recordings... put a few rough mixes on your iPod and listen to them side by side with a professionally finished and mastered song, but try not to do a straight A/B reference, listen to more than just one track in comparison. It's better to have a rounded knowledge of a mastering than just listening to a mastered track in comparison to an unmastered one.
It's well worth investing in some dedicated mastering equipment, whether software packages or mastering equalizers and compressors. I personally use iZotope's Ozone 3 for my mastering, it's an excellent piece of software... around £200 I think.