As you have not yet rooted your device, and Caleb pointed out in his comment the rooting process might delete (some) data (it never did for me, but the danger admittedly exists), I'll divide my answer into two sections:
Solutions not requiring root
ADB backup comes for free, and requires at least parts of the SDK tools to be installed on your computer. Details can be found e.g. on our Android Enthusiasts sister-site with Full Backup of non-rooted devices (which also mentions additional helpers). Also worth a look: the backup tag-wiki at Android.SE.
Solutions requiring root
While I second the recommendation of Titanium Backup made by dotVezz (I'm a happy TiBu-user myself), this might not substitute for a complete ROM backup. If you already have installed a custom recovery, you should for sure make a Nandroid backup (basically, cloning all your partitions into image files, so you can later restore the device to the exact state of when this backup was made). Comes for free with most custom recoveries, as e.g. ClockworkMod or TWRP.
And before I forget: ROM Manager usually does this task as well, including backup and install of your custom ROM. Didn't try it myself, but reading the comments seems people are fond of it.
The most complete backup is provided via Nandroid. If anything goes wrong: as long as you can boot into recovery mode, this brings you back to exactly where you started. Titanium Backup is a solution you most likely will keep "forever", as it provides a scheduler, and you thus always have an up-to-date backup of all your apps and data on your SDCard (and optionally on Dropbox, or with the help of some sync tool like FolderSync even on your computer, or with any other Cloud). If you prefer a non-root solution, ADB backup is the only choice – but requires you either to work with the command-line, or have some additional helpers ready.