We use WHMCS and it's been great. We use it for Design or Hosting clients. Aside from all the great things it does on the hosting end , it allows us to provide quotes for design work. If the client accepts the quote you can mark the quote accepted and it'll generate the invoice. The client can then log in to their account and see what design work they contracted, how much, date, etc.