If it isn't your battery,
and YOU HAVECHECKED THE BATTERY CONNECTIONS IN THE BOOT AND AT THE SOLENOID

( they must be nice and tight, the contact area clean and neat)
then there is two more things to test. and if it is one of them it will cost you 25 dollars at the most.
To test the solenoid:
Ask a beautiful assistant to hold the key in the start position. Explain that it isn't important that she knows why she is doing this, and that you are aware that she has things to do and that yes you are sorry for the inconvenience. With a multimeter or a tester of some sort check for twelve volts on the side of the soleoid where the battery lead connects, and then on the other. With the ignition switch on you should get 12 volts on both sides if the solenoid is fine. If not, then a new solenoid is available and should cost 25 dollars at supercrap.
If the solenoid is fine, then what is happening is that the brushes in the starter motor are worn out and need replacing.
To Fix:(There are two types of starter motor, early ones pre 65ish and everythjing after that, I'll presume you have the late type as these are very common )
Remove starter from engine after disconnecting battery.
Remove end plate off starter, 4 small hex headed screws. Slide off end of starter motor.
Take plate to Auto sparky and ask for new brushes (I paid $17.40 for all four just last week)
Before you put it back together, tak a piece of fine sandpaper (not too important which grade) and lightly sand the surface where the brushes will contact on the starter motor. You can miss this step if you want, it's just nice to do.
Reasssemble.