How old is the engine? How much fuel has been through it?
What fuel are you running?
What are your ambient temps when your trying to start it?
If it's had 4+ gallons through it, there's a high liklihood that the backplate/starter shaft is worn enough that it's leaking more than it should. Or that your owb/starter shaft is worn.
Dropping your fuel to lower oil content (10-12%) will help keep it from gumming up on you.
If it's cold (<60F ambient), the oil that is in the bearing congeals and doesn't let the bearings lock on the shaft. Cleaning it really good with alcohol and using some 3-in-1 on the bearing may help get you moving. Heating the engine up to 80F before trying to start will help if it's cold as well.
In the cooler months, I leave the rig I"m going to run under the heater in my car until it's nice and toasty until I'm ready to fire it up. It only takes a few minutes of 30F to drop the engine temp from 80 to 40, so you have to be quick. If your fighting it hard, heat it back up and give it time. Rushing just irritates you and wastes battery.