[Sprint LG Optimus G] Sputnikk23:
Titanium Backup - for the most part, you only want user apps+data. TB color codes the app list so you can tell easily. There may be a few things in system apps you want. Perhaps data for some note taking app, or TB will color yellow/green some system stuff like SMS/MMS data, WiFi Settings, etc.

SMS Backup & Restore - only does SMS, but its really quick to back up and I do it just in case. I need lots of old texts for reference.

Nandroid - as a last fail all, you can also pull stuff out of a nandroid.

Launcher - your launcher will have a backup option.

So here is what I do: I'll take a TB backup of all user apps + data, and selectively pick out any system apps/data I think I may need (very few). Only very generic stuff as mentioned before - maybe wifi settings or SMS/MMS or account info (sometimes SMS/MMS restore doesn't work right in TB for me, so I failsafe on SMS Backup & Restore as mentioned). You don't want any system/ui setting stuff. You can back them up, just don't restore them. TB has nice batch options to easily do all of this (hell i do it while i'm at work and let it sit).

Then I'll create a update.zip in TB to flash after my new rom (before I even boot) that will place TB in my apps. You can even make a flashable zip with all of your backed up apps+data (i tried this the other day, something went haywire for me so I just flashed the TB app and restored from TB manually - there isn't any difference really)

I'll then do a SMS backup and restore.

Then backup the launcher settings.

Then boot into recovery, do a nandroid.

Btw, all of this is assuming you are like me and stuff like your contacts are synced with google (otherwise, back those up with TB as well + manually by clicking menu in your contact list. not a necessary step but if TB fails you, you don't have to restore to previous ROM just to get your stuff back).

You now have apps + data in an easily restorable format and a failsafe option in case you forgot anything or fail installing the new rom.

Now wipe.

Install new rom. Flash the zip created by TB (the one to either install TB or the massive one TB can create for all your user apps + data).

Boot rom. Run batch restore in TB (just like when you did a batch backup, you will again be able to select WHAT to restore from the TB list) if need be.

Run SMS restore if need be.

Make your restored launcher your home launcher. Restore your launcher settings backup.

For the most part, you should be back to the look and feel of your previous ROM.

Finish up by tweaking the remainder of system settings. This is the stuff you didn't restore as its dangerous. These areas are where most of our devs (on any phone) play with the most and overlaying mismatching settings causes problems. In my restore process, this is the most manual portion. Pleasurable for me though as I"m a crack flasher and gets you reacquainted with your new "settings".

Oh, on first boot test basic functions so you don't spend time restoring only to learn you have to reflash. Test WiFi, SMS, NFC, GPS. Good? Then continue with restoring.

Also, as a general rule of thumb. Before flashing any zip, no matter how simple. Do a nandroid. You'll thank yourself one day.