First, have a friend try to start it while you tap on the starter. If this works and you have checked the contacts (as you mentioned), it is most likely the motor brushes in the starter. Another way to test it is to put it in a vice, take a pair of jumper cables and hook the positive to the stud on the solenoid and to the positive on a known good battery, the negative to the negative of the battery and to the flange on the starter (where it bolts to the engine). take a jumper wire and touch it between the solenoid activation terminal and the positive stud. If the solenoid activates and you know the contacts are good, the starter should run. If not, it is most likely the brushes in the motor.