I use the XBMC software on a Linux box I built from spare parts. Linux version is 10.04LTS.
This streams films, audio and photos from a NAS. I am also working on streaming live TV via the XBMC but the USB TDT dongle I bought isn't talking with the version of Linux I have.
I believe there is a SONOS plugin for XBMC as well.
The XBMC is easy to use, but can be hard to set up. originally I had the Live version of XBMC,this can be booted from a CD, USB stick as well as the hard drive. I installed it on a hard drive. This saw my NAS once I told it where to look. I then upgraded to a full blown Linux install and installed XMBC. Live installs just enough Linux stuff to run XBMC. I then had to manually set up the location for the NAS.
TV streaming can be done via something called TVHeadend this has the ability to stream TV from one machine to others via a web interface. This would be setup on your XBMC box. And all other PCs etc would just login to the relevant ip address and port to be able to view the TV streams. There is also an app for the iPhone/iTouch as well.
As for type of PC to use then have a look at the XBMC forums for advice.