As stated, make sure the battery is in good shape. Also, be sure all cables and connections are good. Additionally, check the helical splines on the starter drive/bendix. The drive should move freely along the splines. I usually use my secret concoction of WD-40 and graphite to lube the splines. Don't use any heavy lubes.
If none of these work, jump over the power cables on the solenoid with a suitable gauge cable (be careful, as soon as connection is made starter motor will spin...). If this corrects things, the internal contacts of the solenoid are in bad shape and the solenoid needs replacement.