I've been using My Backup Pro for a while now, on my Galaxy S2 and now the Nexus 5. Lets me schedule regularly occuring backups, and it's done a good job at saving me from intentional and unintended hardware resets.
With the S2, I can have My Backup save the backup files to the SD card which is pretty handy. I configured the camera app to store photos to the SD card as well, and got into the habit of copying other files to the SD card on a quasi-regular basis for backup. Every now and then I'd pop the card out and copy the contents of the SD card onto my desktop for "off-site" backup.
Since the SD card stays untouched during a hardware reset, restoring the phone is relatively simple. Just reinstall apps from the Play store and restore data from the SD card.
The Nexus 5 doesn't have external SD card storage, so I'm going to have to change my habits a bit. WIthout the safety net of the SD card, if the Nexus 5 needs to be wiped, the backups go along with it (which I ran into yesterday). My Backup Pro can also backup to "the cloud", but I'm not terribly interested in putting my backups there.
Fortunately, the Nexus 5 connects to the desktop more reliably than my S2 when I plug in the USB cable, so I'll just have to get into the habit of copying data off the Nexus 5 onto my desktop whenever I plug it in.