Is it a pre-engaged starter ?, if it is then it's probably a worn portion of the toothed ring on the flywheel as rudearing says.
If it's not a pre-engaged type there could be 2 problems.
The toothed gear is not travelling down the shaft to engage in the flywheel ring either due to general muck and dirt on the shaft or the solenoid in the starter (this pushes the gear down the shaft) is not working.
Some types have a spiral shaft and inertia "throws" the gear down the shaft, these don't work because the shaft gets clogged with dirt / oil etc.
Take the starter out, (remember to disconnect the battery first - many sparks if you don't) and have a look. Yo can test it across a battery if your brave enough, otherwise stick it in a vice and test it. Clean the shaft as required.