Chromecast is probably the best/most versatile if you have a PC or laptop to use as your media PC. Roku is great if you're using a supported service - e.g. Amazon Prime, Netflix or Hulu+.

I have Amazon Prime, which I mostly stream through my Roku, and stream my media server (NAS-based) via a media PC over the chromecast.

I have an old Gen 1 AppleTV I no longer use, and tried the FireTV stick - they duplicated most capabilities of the Roku and Chromecast, so I stuck with the platforms I felt worked best (Roku and media PC via Chromecast). When I still bothered with Hulu+ and Netflix, I did those over the Roku, as well.