Mastering involves a number of steps.
It's basically taking your original and adding EQ and compression to make it sound bigger, fatter, richer and louder. If more than one song is done for an album, the levels of each song are matched and the fades are made to sound smooth. All the spreads are inserted as well so the album flows seemlessly.
A decent mastering house also does a number of other things like editing and making backups etc...
A far as taking it to a pro is concerned though, my general experience is unless you're paying for a top end mastering house, you can probably do a better job yourself using software such as t-Racks.
I've always mastered my own stuff... it takes a bit of practice but there's always presets you can use to give you a starting point.
I've tried sending the same song to a mastering house and to put it bluntly, it blew chunks. (way overmastered, distorted and pumping like crazy.)
Some mastering houses are still into the 'brick wall' theory of thinking.
In other words, they compress and limit it so much that it no longer has any dynamics and is just loud. (the theory being that the louder it is, the better chance it has on the radio)
Personally, I usually do different masters for different media.
I'll do a brick wall master for MP3's but for the album release I'll do a softer mix.
If you do take it to a mastering house, check their credentials and listen to some of the stuff they've mastered. Check to see what equipment they're using and take a look at their monitoring room. Also check to see how long they've been around. The best master guys have been using the same equipment and speakers and really know how to get the best sound from experience.
Also check to see how willing they are to let you sit in on the process, or at least let you give suggestions on the final mix.
If you have high bandwidth check out the 'Anatomy of a Multitrack' tutorial I did.
It takes you right throught the initial recording, adding compression and then finally mastering to show the differences in sound.