SpeedFan probably doesn't have the updated info for the Sandy Bridge CPUs. It works great for older CPUs like my Q6600 (only one with the fix for it).
If anything its going to depend on your ambient. 40c from the mobo is high. The mobo has a sensor near the CPU but not on the CPU so it tends to give a wrong number. Its probably not 40c.
As said before use an updated Realtemp or Coretemp. Or you can try one from Asus since you have a Asus mobo.