I have recently begun doing a bunch of sites for small/medium businesses and I host them on my own VPS account. Up until now I have been invoicing my customers manually but I would like a more automated solution because it's starting to become a pain. Also, with some of the customers, such as restaurants, I trade the hosting for gift certificates at the restaurant so I need to be able to keep track of those as well.
I use a Excel spreadsheet. In there I set columns for name of customer, host log in, user name, password, how many months they paid for and when they renew again. I check this file at the beginning of each month and those that are renewing are entered into QuickBooks with an invoice, which I email to them. I change the date to the next renewal date in the spreadsheet, save it, and I am done. It takes a little work, but I can finish the task in 30 minutes or less for a whole bunch of customers at once.