if the battery is good and charged, (and note that a poor battery will indirectly affect spark voltage - all the coil does is to multiply the battery voltage by about 1000 or so, so if the battery is down to (say) 8v *while you're cranking the engine* then the spark voltage is only gonna be about 8000 instead of 11-12000...dont take the figures as gospel but the theory's correct.
(actually the REAL theory as i'm well aware is considerably more complex, so no flames from electrical wizards please...)
get yerself a voltmeter from somewhere, check battery voltage (12.5 minimum for a well charged battery - can be up to about 13.8). then crank the engine while still checking the voltage, it shouldn't drop too far or too fast. if at the first attempt it drops to below about 9-10v, then it's either not charged enough or buggered. a crude test is to look at the brightness of the headlamp while cranking, if it goes unduly dim, then suspect battery. if the battery is good and the connections to battery, solenoid and starter are clean and tight, but the starter is erratic and poorly performing, then the motor itself is no doubt faulty. It's worth checking the brushes on the motor, (usually at opposite end to drive gear, under a (fairly) easy to remove cover) The brushes should slide freely in their holders and make contact with the commutator, (cylindrical or flat thing with lots of copper segments) which should be clean. if the contact is not good, no current gets through. if the brushes are worn down too far and therefore not pressed onto the commutator properly by their springs the same applies (this doesn't happen to all designs). If the brush gear looks nice and clean and functional, then it's probably a winding (or more) gone inside the motor, which is difficult to fix.
hohum...waffly mechanic mode...must write that book we talked about once, about all the things that modern society wants you to throw away when they stop working...how about "no user serviceable parts inside" as a title...nah...lacks simplicity...