I've always understood one of the key differences between CPLDs and FPGAs to be that CPLDs are non-volatile. In other words CPLDs do not require an external configuration device (i.e. external non-volatile memory + controller) to configure them on power up.
Other sources (like wikipedia *wince*) may suggest other distinctions, but as technology advances these distinctions might get blurred.
This is the viewpoint I have found helpful when communicating with people in industry. If anyone more knowledgeable wants to instruct us with more precise definitions, please feel free.