You can hook the squeezebox up directly to an external HD, but I hear it doesn't work as well as if you hook the drive up to a computer, especially with a large number of files. You can buy devices such as a vortexbox that runs the squeezebox server, or just use an old computer that's somewhere on your network.
Sonos still needs to get the music from somewhere, whether it's a NAS or computer. Sonos does set up it's own wireless network apart from your wifi network, so it may have some advantages in whole house solutions. I don't think Sonos plays as many file formats as SB.
FLAC and apple lossless are similar, some devices, such as my Oppo, won't play them. Apple lossless is a better fit with itunes, flac would have to be converted.
If your system is primarily itunes, an apple TV or airport express would be another good option.