ECC stands for error correction. You know there was 8 bits to a byte, but ECC uses 9, it calculates the 9th from the other 8 as "odd" or "even" and uses that to recheck the data when it's retrieved, in order to assure it isn't corrupt. Of course all this takes processing power, which means ECC is slower. Because tiny errors are rare and insignificant to most programs, most people prefer not to use ECC. But if you were calculating a huge number on something really important, like the yield of an atomic bomb relative to neutrons, you'd probably want that extra assurance.
Registered RAM is needed for the Opteron and early FX (Socket 940) processors. It's also required by certain server chipsets. But many PC chipsets can't work with those registers, so again a waste of money and a possible concern for compatability.
<font color=blue>Only a place as big as the internet could be home to a hero as big as Crashman!</font color=blue>
<font color=red>Only a place as big as the internet could be home to an ego as large as Crashman's!</font color=red>