Be sure your coolant/antifreeze level isn't low. If it gets too low, it can get below the sensor that controls the fan, and the fan won't come on when it should. You'll start to run hot at traffic lights when stopped, but the engine will be ok at speed. That's the first sign on my vehicles. The cure is simple... fill the reservoir to the proper level. If that doesn't cure it, it could be other causes, like a defective sensor, but you might as well check the simple things first.