Now this, as with anything isn't foolproof, and I take no responsibility for what happens to your phone, so proceed at your own risk .
So first thing you do is gather the ROM, Gapps, and any other files you may need like MetrOFF (for MetroPCS users) and put them on your SDcard. You also will need a BACKUP (NANDROID) of your current ROM and for this guide we will be using CWM.
Boot into ClockworkMod Recovery (CWM).
Goto backup and restore > backup
When that finishes go back to the main menu.
Wipe user data/factory reset, confirm.
Wipe cache partition, confirm.
scroll down to advanced > wipe Davlic cache, confirm.
Return to main menu and go to mounts and storage.
Format system, confirm.
Format boot, confirm. _____data and cache have already been formatted when you wiped them in steps 4 and 5.
Install zip from sdcard
Choose zip for sdcard and select the ROM zip you placed on your sdcard and confirm.
Back to choose zip from sdcard and select the gapps zip and confirm.
Back to choose zip from sdcard and select the metroff zip if needed, and confirm.
Once the phone has booted (maybe even a few times) and you know its working properly, reboot back into recovery.
Got to backup and restore.
Select the backup you made at step 2., more options will appear.
Select the data.img and confirm.
When that finishes reboot.
Now you should be real close to how you were before you flashed the new ROM. Please keep in mind if changing platforms from 2.1 to 2.2 or 2.3 and any combination of, this method isnt recommended as they are too many differences between Android platforms and will most like cause conflicts, force closes, and/or bootloops.
NOTE: If you have apps, icons, wallpapers on the sdcard, they all will have to be there after this process to still be there and show up.
NOTE #2: After doing this on my Ascend I still had to re-add my google account. other than that everything has been working great.