MEW can learn all! ^^ try find him!
DRAGONITE can learn all except Flash.
If You wanna a poke just to fill with HMs, it's him. I'd recommend put Fly, Surf, Rock Smash and Strenght, than you can battle with him too.
But if you haven't yet finished the game before, and don't have this poke, try first a non-bird pokemon, than try to find a Dratini at Safari and evolve him with rare candy. Psyduck can learn good ones, only Cut and Fly not, but he's easy to catch and don't need to evolve. Krabby is a good one too, as people said. Gyarados don't have Cut or Fly.