Overheating can be caused by many things. Low water supply, water intake restriction, water output restrictions just to name a few.
Low water supply is mostly related to an impeller or water pump issue. Changing an impeller or replacing a raw water pump will usually fix this condition. Normally a circulating water pump is not bad unless leaking or making noise! If you change your impeller and all or most of the vanes (blades) are missing, remember… they went somewhere… (see "When is it time to change impellers?") Check the next item in the flow of water to see if they are stuck in the system. They will also cause a restriction.
Water intake restrictions can be a thru-hull intake filled with marine growth or an intake screen being clogged. Also a water hose separating from inside and sucking together will also cause a restriction. Look at intake hoses splitting and causing an air leak. Hoses from a thru-hull fitting to the intake (suction) side of raw water pumps should always be hardwall (wire reinforced) hose.
Water output restrictions are typically caused from the exhaust system or the thermostat housing. The easiest troubleshoot for this running at normal temperature up until about 2800-3200 RPM. Anything over that and you overheat, and when you slow back down the engine cools back off. This is almost always clogged manifolds and or risers. This test can only be performed in the water under load.
Overheating at idle is usually a low water supply issue or too much bypass in the cooling system. The bypass is needed to keep water flowing out of the exhaust while the thermostat is closed in order to keep the exhaust hoses from burning. Too much bypass will cause the engine to overheat at an idle. This is most common with using the wrong gasket on the Mercruiser thermostat housing.
Fresh Water Cooling can be affected by all of these problems as well. Here is what you need to find out when you have a fresh water cooling overheating issue. Are you losing water then overheating OR are you overheating then losing water. They sound the same but are totally different. Losing water then overheating is almost always a bad heat exchanger. Many times you will smell anti-freeze coming from the exhaust. Overheating then losing water (because it is boiling out) is caused by one of the issues already mentioned above.
Remember your engine will perform better when running at its designed temperature. Especially EFI motors!