I don't stream, because I don't like the quality. I download en mass.
Use plex if you stream to multiple boxes.
I've posted it up here before, but I'll post it again.
I have unlimited downloads between 2am and 8am, so duing the day my server watches the list of shows I watch, any show that gets aired that day gets put on the watchlist, when the NZB gets released on nzb.su my server downloads it and adds it to my download manager sabnzbd. at 2am my downloader turns on, it downloads all the shows, runs a parity check, unrars them, renames them and moves them into a complete directory, sickbeard monitors that directory and when a new show pops in there, it downloads the NFO files, subtitles, sets the quality, then moves it into my protected raid array, then sends a notice to my plex media center that the show has been added. The server downloads about 60-70 gigs a night, tv shows, movies, comics, music, all without my interaction (with the exception of movies... I have to choose which movies I want, but I set that up by making an IMDB watchlist, so and show I add to that watchlist gets added to my server, it's just easier for the wife to use)
once that is done, I can fire up plex on my phone, tablet, htpc or at a friends house, the server is running the backend, and it can stream to any one of the clients, if I am on my dataplan, plex will transcode the video from 720p to 240p on the fly. it also catalogs which shows I watch so I have a "on deck" area which lists what episodes i'm currently on.
I'd love to use XBMC for the plugins, but I havent needed to yet. XBMC is a little heavier overhead (I know plex is an xbmc fork) plus the database is local, not remote, there is a remote SQL database I can build, but it's still in alpha.