I found this explanation to be the best. Not my words though....... hope this helps
Registered SDRAM (aka 'buffered' SDRAM - the terms are
interchangeable when used to describe SDRAM) are intended for
workstations and servers. Basically all pins except the data and the
clock pins) are buffered through a register. This reduces the loading
by "buffering" the address and control inputs. The main advantage is
that you can put more than 4 DIMMs on a memory controller - up to 8,
IIRC. There's a one clock latency penalty (from the register), but
sometimes this can be masked."
"ECC SDRAM is a whole different thing. ECC is a type of fault
detection/correction circuit that is used to detect and fix memory
errors on the fly. Alpha and Beta particle impact ionization in a
memory bit can cause a bit flip (0->1 or 1->0) which causes a memory
error. With the old parity memory, your system could detect that a bit
had bit flipped on memory read, but would then print "Parity Error"
and freeze up - which prevents this bad data from being written, but
erases all current data. ECC can determine one flipped bit in 64-bits
and can detect an error in two bits (which causes a parity error
shutdown as before)."
"Registered memory is definitely intended for servers/workstations or
systems with a lot of RAM (>2GB). ECC is argueably intended for anyone
who cares a lot about data integrity on their system - which is not
necessarily someone on a workstation."