Here is a description of my HTPC setup. The reason for yet another HTPC description is that I have made a few changes to many of the other setups that I have seen.
My setup consists of a backend server and the actual HTPC that is located under the TV. The backend server runs Ubuntu and Tvheadend. Besides Tvheadend the server runs quite a few other services like mail, web etc. The HTPC under the TV runs Ubuntu with XBMC.
The backend part is the easy part. It runs a standard Ubuntu installation. As I care for my data I run RAID1 with LVM on the top. This gives some great flexibility when I add or replace disks.
On the backend I use Tvheadend. In my PPA I have a version of Tvheadend. It is that version I use on my backend.
The hardware is a cheap Intel Atom CPU with Nvidia gfx. The Nvidia gfx gives hardware accelerated playback of video. I have also bought this one to be able to power on the machine with my remote control.
On the frontend I run Ubuntu with XBMC on it. I use the XBMC package from Pulse Eight. The advantage og this build is that it contains PVR module. The PVR module makes it possible to use XBMC to watch my everyday TV. As I am using XBMC to watch TV I have really easy access to all my videos all the time as it is just a matter of jumping to the video menu while watching TV.
I have bought a Hauppage MCE remote controller. This remote works perfect with Linux and XBMC.