There are ECC and non-ECC memory. ECC stands for error correcting code memory. This memory system tests and corrects any errors in memory without the processor or user being aware of it. ECC memory is like parity memory, in that it detects and reports memory errors. However, parity can only detect errors, ECC can actually correct errors without interrupting the other operations of your system.
The error correcting code generates a checksum when data is loaded in memory, and when it unloads, the checksum is recomputed and if an error is detected it is automatically corrected. This is a safety feature because the CPU can only work with memory that is correct otherwise corrupt memory will give incorrect results.

click to enlarge
Servers will typically use ECC memory because it provides the checksum, error correction code which is necessary to maintain data in an error free format. Desktops do not need that level of error correction and can work with non-ECC memory. This is one reason why desktop computers need to be rebooted more often than servers.
Source: Computer Memory Upgrade
Image Source: TechPowerUP