I'm not totally agree with the explication above. ALSA is a common driver for every supported sound hardware under linux: you've got the pure driver part, different for every soundcard, and the user-space interface, common to all... But, while you can use just ALSA to have a functional sound system, you'd better to use a sound server, you can see it as an interface between ALSA and any application that need it (like a mixer if you want). As far as I know, you have PulseAudio, mostly for every day use, and JACK designed for advanced audio applications...
But don't worry, most sounds application can use any of these sound interface.