Linoone/Tropius, sometimes I'd just let my party of six learn a HM or two each, or sometimes Gyarados/Linoone.
Most times I'd just let my Swampert learn Surf (still one of my favourite moves) and my Swellow learn Fly. Then the rest would just be divided amongst the HM slaves.
But Tropius is a really good HM slave, man. I had no idea until my third re-run of Ruby.