I have always found Kurust and Jenolite to be very effective. Brush on, leave, rinse off, dry. If you've got that black shiny surface, you've killed the rust and can fill and overpaint as you wish. But you can't stop the rusting process, just delay it, as all metals (and ourselves, of course) are trying to return to the earth they came from. For me, Hammerite is a last resort, as it covers rust well but does nothing to convert it to an inert substance as the others do. Rust continues to form, the Hammerite peels off, and it looks worse than before.