Heatspreaders were designed originally for RDRAM RAMBUS modules which needed them.
RDRAM works by using different chips on the module every so often i.e. First the comp uses chips 1, 3, 5, 7 etc. Then after 10 secnds or so it switches to chips 2, 4, 6, 8 etc and then back again etc.
This is necessary because RDRAM runs so hot, that active (fan) cooling is actually needed if they all run at once.
A heatspreader is designed to do exactly what the name suggests - Spread heat. When the first chips (1,3,5,7) are in use, their heat is spread to other chips (2,4,6,8) that are cooler because they are not in use.
When the first chips turn off, they cool down, which allows the heat to be transferred from the second set of chips which are now in use. This way, the heat is spread backwards and forwards, allowing the module to be kept cool without a fan.
It wont work for DDR, cos all the chips run at the same time, so the heat cant be spread from one chip to another.
Sorry for all the info just thought i would explain a bit more