I've seen this question on the Internet many times. The answer I always see is "Because all songs on the radio have been professionally mastered, yours should be too." This is a true fact, but not an answer.
Your songs need to be mastered because you want them to have the same qualities of a well professionally mastered commercial song, and this can only be achieved by using effects on the stereo/main out bus. Which is what mastering is, using effects on the stereo/main out bus. Many critical processes can only be done in mastering.
Here are couple of examples of why a song needs to be mastered:
- Do you want to be able to play your song loud without it breaking up? Then you need mastering. In mastering, you can compress the entire song as a whole (or in separate BANDS) so it doesn't peak too hot or distort during loud playback. Compressing a song in mastering also kind of meshes everything together. In mixing, you can only compress individual instruments like the bass, vocals, etc. This does nothing for loud playback nor does it mesh the song together as a whole.
- Do you want your songs to be as loud as the songs on the radio? Then you need mastering. In mastering, you can use a loudness maximizer and make your songs as loud as needed without distorting. You can't do this in mixing by cranking up your levels. You will distort before reaching your desired loudness.
This question is kind of like asking, "Why does my cake need to go in the oven?" If you want it to be a real cake, and be similar to other cakes, the oven is the final process to get it there. You don't have a cake unless it goes in the oven! You only have raw mixed ingredients. The oven meshes everything together to be like other cakes.