I am by no means a "constant ROM'er", but I have tried it a few times on a few different devices. Here is generally what I do:
1. Back up apps and data with Titanium Backup. I usually back these up to a folder on my external SD card just to be safe. Even though a factory reset shouldn't erase your backups on your internal memory, I just like to be safe.
2. After flashing a custom ROM I install TB as the very first app. ***HINT: If you have your phone setup to automatically restore apps thru Google, apps will automatically begin to download and install. This can slow down the whole process of restoring your apps and data. To keep this from happening, you can either disable the automatic restore OR don't sign in to google when you first set up the phone (that way google won't know which apps to begin to restore).
3. Run TB's restore apps & data BUT RESTORE SYSTEM APPS/DATA AT YOUR OWN RISK. In most cases from my own experiences and others, system apps and data do NOT restore well after flashing a new ROM.
Again, I am no expert and I simply follow the guides and advice of those much smarter and more experienced than I on these forums. Something I said above could be wrong so please correct me if anyone sees a fallacy.