The FASTEST way.. is titanium backup.
The cleanest way.. is google data sync, and appbrain.
If after flashing a ROM, you connect to WiFi, and then open market, and wait 15-20 minutes (or more if you have a ton of huge apps)... your apps will reinstall through the market, and at some point (if not interrupted by a reboot, or changes to network connections), you'll get a notification that says something like "96 of 96 applications restored".. or .. whatever. The nice thing about this, is the applications are not RESTORED, they are CLEANLY downloaded and re-installed via the market in the background.
I then re-sync with Appbrain, just to make sure I'm not missing anything.
Contacts are all sync'd with Google Contacts (google account sync).
Here's the tricky part... you lose your app data. If you had a high score in a game, or had a very time consuming setup of applications, then you lose that.
For me, I have to put logins into a few apps, re-arrange icons on my home screen, and configure several apps again...OH, and configure 2 or 3 widgets.
My total time spent is about 15-20 minutes configuring apps after switching ROMs.
Total stuff lost by not restoring via titanium:
--Scores and progress in games (well, some games, you can back up angry birds, etc.)
--Text Messages.
--App configuration.
Did I miss anything?
OH, and was previously stated as a concern.. wifi settings.
Don't know how or why.. but unless I factory reset, somehow my phone retains it's memory of my home wifi... which is a HIDDEN SSID... haven't figured that one out.. but meh, it works, so no need for backup there either. :S
I have titanium AND mybackup installed.. I just don't use them. I nandroid after a clean install, then again once I get my stuff set up how I like it.. I think I have like 10 nandroids all saved for testing old versions, or going back, or whatever.... but I probably will only realistically use one or two of them...
HUGE fan of nandroid, not so much of backup apps... (as most can guess...)
Did I miss anything that doesn't get backed up or easily restored?
I mean, to give you an idea... I have a TON of apps.. I usually test apps for myself and others, and sometimes I'm an app whore (which is why you almost never see me chiming in regarding performance stuff.. My performance is likely made abyssmal due to the number of apps I have alone. :S Appbrain says I have 108 apps.. but there are a couple I reinstall from SDCard, as they are no longer on the market...
The one time I used titanium to restore my apps, it was a HUGE pain the rear.. AND caused issues... after that, I just let Google's Data Sync do it's thing, and life's been good.