That, plus the following:
Depending on how it's implemented, software volume control destroys detail.
There are, essentially, two ways to implement software-based volume control: via output signal attenuation (though a somewhat more analog method like an integrated resistor ladder), or through digital signal processing (DSP).
If your source goes the DSP route, which it most likely is, as that's the cheapest means to implement software-based volume control, then you end up tossing resolution out the window.
Put in a HIGHLY oversimplified way, ignoring signal to noise ratios and other technical minutiae:
Let's say you have a 16 bit signal. With a 16 bit source file, the wave of the resulting analog signal that your source can put out can have up to 65,536 possible amplitude values, meaning how "far away" the signal amplitude for every given sample can be from the noise floor. A bigger amplitude means a "louder" resulting signal.
The audio data that gets piped to the DAC (integrated or external, doesn't matter) is always 16 bit for that file, with the highest values still describing the maximum possible amplitude, but if you now use DSP to reduce the volume of that signal, you will end up compressing your full amplitude into a smaller range.
Let's say you set your software-based volume level at 25%, you end up with (again, HIGHLY oversimplified! Perceived volume levels aren't linear, these numbers are just meant to draw a rough picture) just 16,384 remaining useful amplitude levels out of the formerly available 65,536. You can't use the higher amplitude levels, because then your output signal would end up louder than the 25% that you've set it to. Which means that you've essentially reduced the information contained in your original 16 bits to just 14 bits. 2 bits less doesn't sound like much, but you've essentially lost 75% of the detail, of the dynamic range that the original source file contained.
You also always face some (very) minor losses while your analog signal is traveling through your chain. If you start out with a stronger analog signal, what ultimately ends up at your power amp will have retained more of the original information than it would have with a signal that's been attenuated right out of the source.
Using an analog preamp instead of software-based volume control means that your source is free to always put out the highest possible amplitude, retaining the highest possible amount of detail/information in the signal, you face a smaller amount of overall degradation while it's traveling through your chain, and you'll be able to attenuate the final signal that goes into the power amp through analog means, retaining most of the detail you had before you attenuated it.
(Pots, resistor ladders, etc., introduce their own "flavor" into the signal, obviously, but as long as these components are at least halfway decent in quality, you will not lose nearly as much signal quality as you would with DSP-based volume attenuation.)
Complicated topic. I hope this makes some sense.