Here's what I have learned through these forums and by trial and error.
1. You (or I) need to spend a lot of time reading about rooting, installing ROMs, and then selecting a ROM to start with. Read all the posts -- the good and the bad. Get an idea where and why people are having problems and the work arounds.
2. Back up EVERYTHING you care about. When I started, I basically plugged my phone into my computer and backed up (made a mirror image) of the the internal "SD" card (pictures, stored music, wallpaper, ringtones, etc.).
3. This is optional, but I keep all my android stuff I care about, including kernels, ROMs, add-ons, themes in a dropbox account and have dropbox installed on my phone so I can quickly grab kernels, etc. for reflashing if needed.
4. Once you back up everything, my suggestion is to use a one-click-root method. I know; many of the devs and advanced users out there will say I'm lame for using a one-click-root method, but it's just so easy and works nearly 100% of the time. My suggestion is to use ACS's one-click root method. It has the stock operating system in there so you can use this program to root your phone or reflash to the stock operating system when desired.
Here is the link to the one-click root and videos. And, BTW, watch QBking77s videos for all things Nexus. His cinematography is simply awful (sorry, QBKing77), but the videos are VERY helpful and I have links to all his videos in my dropbox.
5. Before rooting, this is the point of no return, because once you start it, it wipes everything on the phone when you unlock the bootloader. So, if you've got apps you want to back up, use MyBackup Pro or Titanium. My suggestion is Titanium, and buy the full version. It is incredible. Take your mybackup pro or titanium folder and save it to your computer or cloud or whatever. Refer to previous posts about restoring apps v. apps+data.
6. After you root, copy your ROM or kernels to the phone. Suggestion: make a folder on your internal storage where you keep all these ROMs and kernels so you know where they are. I made a folder called "CWM-FLASH" and under it folders called "ROM," "Kernels," "Themes," and "add-ons." Makes locating ROMs and Kernels very easy for quick flashing.
7. As for the choice of ROM, this is a personal decision based on your needs. They are all very good. Myself, I like Pool Party, Oxygen, and Bugless Beast. But Cyanogen is great, and the ICS ROMs are growing in popularity as well. The first three ROMs I mentioned are pretty close to the stock AOSP look and all perform well.
8. Kernels are fantastic. Franco's kernel, GLaDOS, and matr1x are all great. There are others out there as well that I can't comment on. But there are choices.
9. After you install the ROM, copy all your precious cargo back to your phone when you are settled on a ROM you like and restore your apps.
The biggest drawback to installing ROMs is restoring the apps and customizing your screens. This is the most timely component.
There are a lot of great ROMs and a lot of people here who can help you out if you need it. Take the plunge! As Paul627g says, it's a crime not to root/mod the Nexus S!