Do you have AIRFLOW in your case? are the cables in the case are tidied up in order, so they don't obstruct air from getting to the CPU fan? a heatsink and fan aren't THE ONLY factors in how high will be the CPU temp, airflow is very important and if constructed correctly inside the case can lower temps by even 5-7C. Try tidying up the cables inside the PC, so there are no cables hanging around in there, also add a front bottom intake and rear upper exhaust fans, this will give you at least a minimum air flow. Try asking in the cooling section for guides or something to help you make good airflow.
An easy way to check if you need more air flow is:
Get Prime 95 (stress program). let it run for 30mins, and see what's the temp. then take off the case side and let it run another 30 mins (after it cooled down), if you see ANY change in temperature, for the better, that means your problem is airflow.
Also as David said, is your heatsink properly applied? Lapping it, if it has an uneven base will benefit you another couple of C, and using the proper amount of artic silver on the die is very important as well.
What motherboard? what is your ambient temp? the more info you give the better we will be able to answer your question. The most important is the motherboard because some motherboards read the internal diode and will be higher than those that do not. Good luck.