I just avoid invoicing completly by outsourcing it to oDesk. The time I spend invoicing clients is literally the time it takes to hit
Page Up and then
Page Down when I'm done.
Yes, that costs me 10% (or I have to charge 10% more, if you want to look at it that way), but I'm fine with that for a few reasons. First, as you've realized, at its worse invoicing is painful and time-consuming. And even if you setup an efficient automated system yourself, it's still yet another thing on your to-do list.
I don't want to spend my time doing something I'm not actually paid to do. Invoicing is not something that relates at all to what I do. I'm a contract software developer, invoicing is not software development, and I'm very happy to avoid that context switch.
But perhaps the most value I get form oDesk - and this is outside the context of the question, but I'll add it as it's a common complaint when invoicing clients - is that I'm guaranteed to be paid. As long as I use their software client to track the time, oDesk guarantees the payment.
So there's no need for me to match checks with invoices, and remind clients when a payment has not been sent.*
On top of all that, the money is direct deposited to my account every week.
Not sure it could get more simple than two sets of keystrokes, and direct deposit every week.
*Quick note on the obvious response I always get when making this point: Yes, if that were a frequent issue, I'm really bad a picking clients. But it's not just bad clients that miss an invoice, there are a few clients I invoice outside oDesk and from time to time an invoice will get lost / forgotten amidst all the other invoices they get. For my oDesk clients I never have to worry about that, and I don't have to spend any time checking it.