Interesting question. I did some searching/testing myself and downloaded and used speedfan, coretemp and speccy (as adviced by another answerer) on my intel atom mini-pc (it's a single core cpu with 2 threads)
Here are my findings:
coretemp readings :
core #0 24C
speedfan readings :
system 52C
cpu 55C (similar to motherboard temp reading in speccy)
aux -33C (obviously an unrealistic value so ignorable)
hd0 42C (similar to reading of hdd temp in speccy)
core 0 34C (a bit lower then the cpu temp reading in speccy)
speccy readings:
cpu 39C
motherboard 55C
hdd 42C
My conclusions:
I think the 52C system (casing temperature, or general system temperature) and the 55C cpu temp in speedfan represent a temperature readout by an onboard hardwaremonitoring chip i have on the motherboard (i asume the chip must be there because it's mentioned and there is a credible reading)
When you press the configure tab on the speedfan main tab and go to the temperatures tab you wil see the chips connected to a certain readout. In my case the 52C and 55C speedfan readings belong to a winbond chip. I asume this chip is a chip on the motherboard that is connected to a temperaturesensor under (not in) the cpu and a sensor somewhere else on the motherboard to measure the systemtemperature (just guessing here).
So i think there are actually 2 sensors measuring the cpu temp, 1 on the motherboard and 1 in the cpu.
The other sensor (built into the cpu) is shown by the lower cpu readouts. That they are not all the same (varying from as low as 24 in coretemp to 39 in speccy) may be because of an inacurate calculation based upon a faulty asumption of the tj. max (another guess, see source).
From a hardwaremonitoring/overclocking point of view i wouldn't worry about the deviations in the readout of internal cpu tempsensor because i would focus on the higher readout by the monitoring chip on the motherboard because a conservative aproach is best.
Also absolute temperature isn't that important when it's below a safe threshold. Who cares if a cpu is 23 or 33 C? What is important is the difference in temp and that it's not to high. So i would make notes of your findings so u can check later for any change. For an absolute temp indication i would stick to the higher motherboard readout, make sure it's not to high.
When it comes to reading the internal cpu sensor my guess is that speccy is most accurate. But as long as that temp stays below lets say 60C you should be ok. I would definately not think oooh the internal cpu readout is only that low so i can overclock, i would definately try to keep the higher readout within limits.
Try seeing what happens when your cpu is under load (also see resource)
I find it pretty strange though that the internal cpu sensor finds a lower temp then the sensor outside the cpu .Might be worth some more research:
http://forums.tweaktown.com/gigabyte/33347-digital-thermal-sensors-dts-seeking-themal-peace-mind.html
(my initial impression would be not to trust those dts readouts to quickly)