Non-parity is sort of used as a synonym for non-ECC nowadays, but they're not the same.
Parity just means there's an extra chip on the module that's used for a parity bit (if you enable it in the BIOS). There's even and odd parity (odd being the standard). If you're using odd parity, the 8 bits in a byte of data are counted, and if there's an odd number of ones, the parity bit is left at zero. If there are an even number of ones, the parity bit is set to one, so there's always an odd number of ones. In this way, if a single bit is corrupted, then that byte will have an even number of ones, and the system will discard it.
More info.
Parity does not have a correction system, since it only counts bits but can't tell which one is corrupted. If there are two errored bits, then you're screwed and the system may crash or you store bad data to the hard drive or something like that.
ECC is error correcting code. In ECC, if a single bit gets corrupted, it gets corrected by the memory system, so it's a step beyond parity, but still not perfect. However it can at least prevent bad data from crashing the system with multi-bit errors.
I wonder if the "ECC" memory you get from Crucial or anyplace else that sells consumer modules is actually ECC memory or just parity memory which can be used in ECC mode.