He's the best HM slave you could possibly ever have. Being a slave sounds bad, but an HM slave pokemon is very useful and a must in any party. For those who don't know, an HM slave is a pokemon dedicated to using HM moves only, so the other members of your party don't have to learn these Hidden Machines.
Dragonite is the best. In Pokemon FireRed and LeafGreen, he can learn the most important Hidden Machines - Fly, Surf and Cut. Actually he can learn all HMs except Flash. Isn't that cool? He has impressive stats by default so don't underestimate him even if he has only Hidden Machine moves.
I named my Dragonite "HMDragon", a pretty straightforward name. And he replaced two pokemons in my party with HM moves - Pidgeot (Fly) and Krabby (my former HM slave). All for the best. Now I can find better pokemon without worrying too much about HM moves.