cPanel/WHM handles the hosting account management on the server level. We use a billing system to manage the rest and integrate with WHM commands like add/del user accounts/domains. Suspend/change password/upgrade package limits... etc.
I use WHM Autopilot. It isn't too expensive, but as an accounting system isn't very useful, so we use another application for the actual accounting of the money side of the business.
Autopilot helps alot with the customer management, and WHM/cPanel does the rest on the server/hosting side. There are many other application like Autopilot for managing the customers. Many billing systems can usually issue commands to the WHM backend through HTTPS so you don't need to pick apart the WHM/cPanel code, maybe just the links and forms within WHM using the view source option in your web browser.
A cPanel user can not make modifications to DNS too much. It's possible to allow them to create subdomains, park domains, create addon domains to their account. There is also a link to edit the MX record in their cPanel. I haven't used that before, so I don't know how it works. Modification of existing DNS zones beyond those choices must be done by a system admin either from command line or through WHM.
One of the biggest factors in my decision to use cPanel as opposed to other systems was the fact that cPanel/WHM handles much of the server administration for you. It takes a base unconfigured O/S install and makes sure the server is setup from the start to serve domain hosting and the aspects you would expect for that service. In doing that, cPanel will also make sure the things that cPanel installed is up to date and secure. This can be done automatically if WHM is set to do updates automatically each night with the backup jobs and other housekeeping duties. The updates "almost" never cause any issues and you can feel pretty good about the support from them and these forums when problems do arise.
Another good feature is the nightly backups. This has impressed and saved my customers many times. This is also automated, and all reports E-mailed nightly.
I can tell you that Plesk has the disclaimer you can read before you purchase it... Plesk doesn't do system administration, that's what the system administrator is for.... WHM/cPanel takes a huge load of work off a system administrator. Instead of doing the tedious work of checking and upgrading all the installed packages of software, cPanel does that for you. Your sysadmin will still need to do the O/S kernel updates though which is also a good idea not to automate.
Another extremely cool thing is the ability to transfer multiple accounts to another cPAnel server. The scenario is, you are runing out of disk space OR you need to upgrade the O/S to a new platform like from Fedora to Cent O/S. Get the new server up and cPanel installed with the test license. Take the old hosting server services down and go to the new WHM/cPAenl server to transfer all or some of the accounts from the old server to the new one in a single batch if you want. It will take a while for large accounts, but it makes upgrading the hosted server way easier than it is with most other systems.
I have also tried using a few other free or close to free solutions and it was well worth the money for the cPanel/WHM product.
Chuck