I'd also add that it's trivially easy to posit an application which doesn't provide a volume control. Or an application which provides volume control, but hidden deep within labyrinthine controls - like MythTV or many games. Or an application which is normally quite acceptably loud most of the time but some times is too soft or loud - e.g. mplayer playing some video files, or in a situation where you want it playing in the background.
The real point here is that having every application (hopefully) implement a volume control (and hopefully do it well), and having it in a different location for each application, is a usability nightmare. Having one set of centralised controls smooths over a multitude of minor sins.