Honestly, as someone who has spent a lot of money on products like POR-15 and SEM Rust Trap, I've been equally as satisfied with brush on black Rustoleum. IMO the satin black looks great. Put it over rusty metal primer and it holds up very well and its easy to touch up.
IMO powdercoat is the ultimate frame coating but unless you are taking it to a bare frame, its not really an option.
I vote Rustoleum for frames.
For your wheel wells and other underbody sheet metal, U-Pol Gravitex or Raptor Liner. Inexpensive, looks fantastic, easy to apply and touch up, and good quality. It's what I'll be using on my car.