Step one should always be to remove as much of the rust as possible; scrape it off with a wire brush, media blast it, whatever.
RustMort (and other brands of phosphoric acid) is a great product, but not a final step. Once you've got the worst of the rot scraped off, you can cover the affected areas with RustMort and it will remove the oxides from the rust and leave you with a chemically neutral surface. Clean up the residue and prep for paint immediately.
ZeroRust is a marvel in a can... it's a single-stage paint that has phenomenal adhesion to bare metal. POR is a two-stage coating with similar adhesion properties that is more impact/scratch resistant, but it's a bit more expensive.
Hammerite, Rustoleum, and the like will fall off the steel if you haven't properly removed and treated the rust; they are great sealcoats but won't do any good if you don't prep the surface. Sure, they adhere to the rust, but what's holding the rust on?
I attacked my truck with a wire cup brush on an angle-grinder, bathed it in RustMort, and used Rustoleum bare metal primer and paint. On the underside of the fenders I used RustMort, then ZeroRust, then brush-on undercoating to protect against rocks.