could be a bad fan clutch or even dirt in the radiator (exterior). I had the same problem, replaced thermostat and fan clutch, still had problem, finally figured out that all the radiator needed was a good cleaning.
I took a garden hose from the back of the radiator towards the front and A BUNCH of brown stuff came out, even though the radioator looked clean to the naked eye. I'm not guaranteeing that this will work but if youve done a lot of offroading its worth a try for free.
To check fan clutch: Warm your engine up to operating temp, turn off, and spin the fan by hand. Does it spin freely or less than a full revolution and stop? If it spins loosely, fan clutch is bad.