The simple answer, I'm sure the guys at this forum could write a book about it....
Registered memory is a type of buffered memory. When you have registered memory the memory board will have a chip called a register. The register clocks in and clocks out the data by the system clock. Registered modules are slightly slower then non-registered modules, because the registering process takes one clock cycle. Have registered memory improves data transfer by "re-driving" the control signals in the memory chips.
ECC (Error Checking and Correcting) performs "double bit detection and single bit correction." This means that if you have a single bit memory error, the chipset and memory will find and repair the error on the fly without you knowing that it happened. If you have a double bit memory error, it will detect and report it. Using ECC decreases your PC's performance by about 2%. Current technology DRAM is very stable and memory errors are rare, so unless you have a need for ECC, you are better served with non-parity SDRAM