I just did this project last weekend....
I noticed a lot of surface rust on the outer most visible portions of my frame. I got underneath my jeep and noticed more on the underside of the frame and on some of the factory skid plates. This is what I did:
Buy a wire brish attachment for your drill. Hopefully your drill has some balls, and a good battery or two...
1.)Take off your wheels, and go to town on the frame, skid plates, and any other non moving parts under the body.
2.) Get a bucket of water and some mild dish soap, and wash all the parts that you just sanded. This gets all the rust-dust off, and will help the undercoat to stick.
3.) I used the aforementioned Duplicolor Professional Undercoating. It does spray out fast, and I can't stress this enough: SHAKE THE HELL OUT OF IT. If you don't, it will not come out evenly or stick to the surface well, which results in it flaking off easily and you having to re-do the job. I know- because I didn't shake my first application, and had to re-do the entire passenger side of my jeep. Waste of time and money.
4.) The undercoat eventually dries and becomes hard, after that you can paint it. I used some rustoleum flat black spray paint. This step is probably unnessesary, but I had the time and the paint, and it came out real nice.
I am really happy with the result. Goodluck, post pics!