HWMonitor, and Realtemp are the best without paying $$ for full feature software like Everest Ultimate.
Both Realtemp/Everest Ultimate may require some configuration to get them to be as accurate as possible (specifically with the TJ max I believe). I saw a thread on how to do this, however I cannot find it in my browser's history. I recommend you google some information on how to calibrate the software.
there is nothing wrong with speedfan, it just uses a different tjmax than realtemp, or coretemp too for that matter.
you can easily calibrate speedfan, but first i would recommend downloading coretemp, and hwmonitor. compare them with real temp. ideally coretemp should be 5c lower than realtemp and hwmonitor. if that is the case, realtemp is accurate. to calibrate speedfan temps follow the path:
configure-->advanced-->chip: intel-->temp 1/2/3/4 offset-->set to: (choose the number that inreases your speedfan value to equal the realtemp value), save, and you're set.
so if speedfan says 30c and realtemp 40c, in speedfan change the offset to +10 and now speedfan will read 40c.
coretemp/realtemp are the more accurate ones. i am more inclined to believe speedfan is actually more accurate than realtemp too, because its obviously 15c off exactly from coretemps readings. the only problem is that it is probably using a 115c tjmax instead of 100 like coretemp. if you want to use speedfan indefinitely, just change the offset by +15 and you will be set.
hwmonitor isn't off by much. 1 or 2c can happen in a rather quick moment, so some utilities take a second to catch up with the actual temps. temp monitoring utilities are run based on the tjmax of processors, and not all processors have the same tjmax settings, hence why all these programs can return different values.