I use Plex. It works pretty well, and has a nice-looking interface; though it handles a mouse cursor like a fumbling 14-year-old boy handles a bra clasp. Check it out. It plays like, anything, regardless of what codec or quality you have it in. It'll also let you stream to mobile devices using an app where you can choose a quality to re-encode it with on the fly. Your server will just re-encode it live and you can even specify a custom bit rate in the app to have it re-encode at. Obviously that'll hit your CPU pretty hard on the server itself when you use the live re-encode option, but it lets you have your full home library anywhere you go. You will need a decent processor for good live re-encoding, though.
Also, one downside is that it doesn't have a Linux server as of yet. Since I use an InfiniTV 4 for TV in my place, I have to use Windows Media Center, so it's not a big deal to me because I have to run Windows anyways, but I really hope Plex brings a Linux server app at some point. A couple of features I really like about it are things like being able to run in full-screen windowed mode (borderless full-screen) while being able to specify which monitor you want the app to start on, and you can also specify any audio device to run sound through regardless of what your default audio source is in Windows.http://www.plexapp.com