The Roku has a bunch of channels that can be added to it but I don't know if any are free or if they charge a monthly subscription (I suspect they all charge something).
Google recently came out with the Chromecast which is a little $35 dongle that attaches to your TV and, using wifi, allows you to stream Netflix, YouTube and Pandora content via apps on an Android phone but it also allows you to view anything on your computer using the Chrome browser. Anything you can view on your computer can be shown on your TV via the Chrome browser.
Chromecast is still very new so there aren't a lot of apps yet but there are lots of developers lined up to start shipping apps once Google gets the API stabilized. The future is very bright for the Chromecast.
One reason I prefer the Chromecast over something like the Roku is because with Chromecast, my laptop or Android phone/tablet becomes my wireless remote. When I want to do a search in Netflix using something like a Roku with it's limited remote, I have to use cursor keys to select the letters of my search individually from a grid of letters, numbers and symbols but with Chromecast, I can use my keyboard to quickly type in what I want to search for. Once I find a movie/show and start watching it, the laptop/phone/tablet isn't needed any longer unless I wish to pause or stop the movie. I can close the lid on my laptop or blank the screen on my phone/tablet and let it go to sleep, only need to open it if I wish to pause, skip forward/back, etc...