This is gonna sound dumb, but I've been bitten by this problem in the past:
Clean your battery terminals up really well. They may have a decent enough contact to power accessories/headlights/etc but not enough to allow the amperage the starter needs to turn.