Rust is a very difficult issue with any car. I've done body work before and rust is the toughest because you can think you have everything gone but its still there.
Your best bet is this: (if you have access to a good paint booth or even just a heated garage, depending on where you live, and a good air compressor and a spray gun)
Step 1: Sand down. I would probably start with 80 grit sand paper and get through clear and color then gradually work your way out to 300 grit.
Step 2: Get a primer/sealer. Don't JUST prime, primer is porous and "breathes" if you will and it will still rust under it. If you have a local PPG or DuPont shop in town go there and they will set you up with this step and step 3.
Step 3: Again go to your PPG or DuPont shop and have them color match your paint and tell them you want it "ready to spray" and along with a clear.
Step 4: Mask off the vehicle and spray the color and clear. When you do the color you may want to mask off bigger than the area so you can blend as getting paint to match PERFECT is nearly impossible. You should let the clear set for a day in a heated garage before doing anything with the vehicle. Most of the big body shops "bake" it on and it takes anywhere from 10-30 minutes to cure, but if you dont have a heated paintbooth then you will need to let it cure for a day. After that I would wetsand it with 2000 grit and polish out to a beautiful shine.
I realize this is very involved and you may not have access to all this machinery but if you want it done right then thats what i would suggest. If the rust is REALLY deep you may have to use some bondo, filling putty and glaze just sand that down level with the roof and use the same procedure.
I hope I helped somewhat, if you have any other questions PM me. It may take a day or two as i am going on vacation next week.
-Jake