I've been using Freevo as my main PVR for a long time. It doesn't have much features, but it's simple and works. I've also tried installing MythTV for several times and always given up. Now I finally made it, along with the MythTV 0.18.1 release and some manual tweaking.
MythTV is really cool, supporting multiple tuners and several frontends on Linux, Windows and Mac OS X. So it's easy to build a real home network. All you need is one backend PC with a tuner (or several tuners). The frontend PC's can be anywhere in the house as long as they're Ethernet-connected. You can use them to watch live tv, recordings or whatever the actual backend PC with the tuners can do.
My problem with MythTV has always been to configure the DVB-C transport streams and channels. The autoscan feature of MythTV is very buggy and only works sometimes on DVB-C. In fact, I had to run it once to detect the transport streams (multiplexes), and then separately for each transport stream to detect the actual channels.
After this, the main problem was with the XMLTV integration, which causes phantom channels to appear in the database. I decided to simply delete them and just set the xmltvid column of the real DVB-detected channels.
A particularly nice detail in MythTV's database design is the mplexid column. In the channel table, mplexid refers to the corresponding row in the dtv_multiplex table. However, it does not refer to the mplexid column of dtv_multiplex, but instead the transportid column. Now that's really good design.