Been looking for a good invoicing app of a while now and after bouncing around between iRatchet (the old non-App Store version, since you can't get a demo of the newer version), iBiz, and Billings, I finally settled on Billings - mostly because it handles hourly invoices extremely well and has an awesome iOS counterpart!
There is a lot to configure at first, which can be very overwhelming - especially when trying to setup your own customized invoice design, but once you get things set up it works pretty well.
There are a couple of quirks and annoyances preventing me from giving this five stars. First and foremost, invoices are numbered as an overall total, and not on a per client basis. In addition, you can't renumber an invoice, and the total continues up even if you delete an invoice (i.e. you create an invoice which is numbered 180, then you delete for whatever reason, create a new invoice it is numbered 181 even though invoice 180 no longer exists). Fortunately this can be resolved by using a custom field, but would still be nice if you didn't have to manually enter the invoice number each time.
Sorting through invoiced projects is difficult as well, as there is no way to group paid and unpaid invoices - you can use the reporting function, but that can be more complicated than it's worth.
Finally, and this is the biggest annoyances, there is no way to discount an invoice by a fixed amount, Billings only supports discounting by %.
While these seem like a lot of complaints, I do like the program overall - once you get it set up to your liking it makes keeping track of all your invoices quite painless, add to that its iOS counterpart to create invoices on the go, this is a pretty good invoicing program border lining on being great.