I've been lucky to use quite a few Billing Systems including WHMCS, Ubersmit, HostBill, ClientExec, Blesta and BoxBilling. Other than BoxBilling every other system is Paid.
Depending upon our requirements we ended up using a different Billing System for our sole purpose.
WHMCS is the best when you plan to use it for Hosting related services ( Shared, Reseller, VPS's, Domains and even Email Hosting )
HostBill we ended up using this mainly because WHMCS has this floating point limitation related to its product prices which weren't letting us set the hourly rates for our Cloud Instances ( we used OnApp for this ). HostBill has a fairly better integration for OnApp.
Ubersmith man oh man where do I even start. This offers one of the most flexible API integration than any of the other mentioned billing systems. Secondly, this is mainly for companies who own their own Hardware and need to monitor, manage and keep a track on their Inventory.
ClientExec, Blesta, and BoxBilling are decent billing systems which offer out of the box Payment Gateway integrations, Support System and an Ecommerce Gateway with a clean UI.