I only do hourly with a small amount of clients (usually only for web work). I use a program called Billings for invoicing, and it has an awesome built in timer. It keeps a log for me of how many hours I work on a certain project (i hit start and stop) and it also tells me how many hours I worked on it in a week, day, and also a session (tim between my last start and stop). Pretty cool app.
Billings 2.5: Time tracking and invoicing for Mac OS X