I bill customers on the day that they signed up. It's easier to bill Joe Smith on the 12th every month than to explain to him why his first months bill was smaller than the others (pro-rated approach).
You should definitely automate this. Try to bill, if it works, send an invoice via email. If it fails, send them an email asking them to update their payment information. Now, an automatic process could have bugs in it, but so could having a person push a button. It's the code to execute the charges that matters, not how it's invoked. That said, the first few times it happened I'd be danged sure I was watching in realtime (and maybe require human intervention to prevent a bug from affecting ALL my customers).
You aren't saving credit card numbers, right? I use authorize's CIM to obtain a reference to that cc file. You don't want to go through PCI compliance for storing cards, or even risk massive fraud due to a security breach. It's worth the extra money.