While using the CWM advanced restore is a viable option, it can cause issues, especially when jumping from one ROM to another (ie, Viper to Bonsai). Same could be said with Titanium if you restore the wrong data.
I personally do both. I back all user installed apps & data plus some "select" system data (items that I know won't mess with the ROM setup upon restoration) with Titanium. Then use the filters/batch to keep them up to date without backing up all the uneeded stuff.
However, before I do any major changes, I also do a CWM backup, just in case. After I load a new ROM, I'll attempt a CWM restore to try and get everything, but if it causes problems, I fall back to Titanium.
The nice part about Titanium is that it doesn't take near as long to get the most up to date backup as you just have to redo updated apps and data vs backing up EVERYTHING.
Between those 2, gmail taking care of my contacts, and handcent taking care of my SMS/MMS messages, I know my data is safe...
