Depending on your MB, it might come with its own cpu monitoring application. I have and asus baord and use PC Probe to monitor my temps which seem pretty much equal to the bios temps. You check the real cpu temp by hitting the reset button and quickly entering the bios and going to the section where the temps are displayed. If you do it quickly enough, the bcpu should have cooled by only about 1 or 2 degrees celcius. Compare that temp to the your speedfan and overdrive readings to see which is giving the more accurate result.
But like I said, use the app designed specifically for your MB if it came with one (also check the MB's manufacturer website for available software apps if its not on the orignal drivers disc)
I use to use speedfan UNTILL i noticed it was reading my GTX580's temp and registering it under CPU temps ¬_¬
Then i used HW monitor which does work.
As far as your temps are they're nothing really to worry about, anything between 40-60 is fine.
What are you using to cool the CPU?