I have my RPi running Raspbmc off a 4GB class-8 SD card I had spare. It's connected to a Western Digital Elements 1TB external hard drive via a powered 7-port USB hub. The same hub connects it to a Logitech Bluetooth receiver for a keyboard and mouse, but main control is by IR remote, using a DVD Playback Kit for the original XBox - I cracked open the receiver, removed the XBox controller port plug and soldered half a USB cable straight onto the board; LIRC comes pre-installed with Raspbmc and includes the necessary mappings to use the remote with no extra setup. If your TV is less cheap and basic than mine, you can add the RPi as a CEC device in your TV's menu and use the TV's remote to control the RPi via the HDMI connection. Alternatively, there are XBMC remote control apps available for iOS and Android. For that, you'll need an internet connection - my RPi happens to be sitting a handspan away from my router, so I have it connected by Ethernet, but the powered hub provides enough juice to run something like this Edimax WiFi stub antenna if your router is out of Ethernet reach (or you don't want the cable clutter).
With this setup, I can play pretty much anything you care to mention. One of the first things I tested it on was the full HD BluRay version of Avatar, and besides a slightly-longer-than-usual pause before it started playing, there was no trouble at all.