This is complicated.
The idea with a stereo is to reproduce the sound of listening to a live performance, as in, there is a group of musicians playing directly in front of you on a stage, so, higher than you are.
As most cars don't mount single speakers in the center of the windshield, this is technically difficult to reproduce.
Speakers are usually louder in the front to simulate the band being in front of you. Various tricks are used to make it sound like they are on a stage. Rear speakers are usually used to simulate the effect of sound reflecting off the back walls of the venue. (Musicians are the exception to this, they are used to the sound coming from around / behind them, and tend to set up their systems to reflect this.)
As a few people said in much earlier posts, a good headunit with built in mosfet style amp plus good speakers will go a long way towards improving the sound. Personally, I am a fan of JL audio speakers. I haven't found a brand of head unit that I am especially fond of - my current Alpine is... well, freaking terrible. It sounds fine, but the interface is about as intuitive as the LISP command line interface... in Sanskrit.
In my opinion, however, there is no replacement for a good amp, headunit, and speakers. When you go this route from the start, you can purchase a headunit with no onboard amp at all, so you don't have to worry about overheating from the onboard amp, your dampeners on the CD loading mechanism last WAY longer before it starts to stiffen and skip. Furthermore, you can mount an amplifier some place that it can shed heat properly, instead of trying to vent it inside your dash.