I believe that the basic idea of mastering is to master all the songs that you have for a certain album, so that the songs sound like they belong together. Not the same, but so you don't huge variances between the different songs in how they sound. I think the goal is to have the album sound like it was recorded all in the same room on the same day all at once, which it obviously wouldn't have been, but thats what you want.
I don't believe it's necessary to master a single song, but it is necessary to master songs intended to be included in a collection of some sort, unless you want it to sound like a greatest hits album. Its all about the presentation of the entire product.
I would think it would also be a good idea to have someone else master your stuff. Actually, I'd NEVER master my own stuff. You need someone who is going to improve the way it sounds. Theoretically, you already like the way it sounds, or have an opinion about the way it should sound, and that is why i don't think people should do their own mastering. But since you would have no control over what the mastering person is doing, you have to be able to trust that your project is going to benefeit from there services. I'd spend as much money as I could to get something mastered for this very reason.
If you can afford it, and the project matters, get someone like David Collins to master your stuff.
If I'm wrong about any of this, someone please correct me because these are just my general ideas about what mastering is for. I don't master things myself, and someone who does might be more clear about it, or at least I'd hope so.
