When I started playing Pearl, i distributed the important HMs to ALL the pokemon in my party, i.e. each member of the team gets at least one of the HMs. That was before facing E4 and Cynthia.
My Team:
:bidoof: Empoleon - Surf, Rock Climb
:bidoof: Gyarados - Rock Smash, Waterfall
:bidoof: Roserade - Cut
:bidoof: Staraptor - Fly
:bidoof: Luxray - Strength
:bidoof: Palkia - no HM
After acquiring the National Pokedex, I made some new HMs slave pokemon and i'm currently using as follows:
Pinsir - Rock Climb, Strength, Cut
Skarmory - Fly, Rock Smash, Defog & TM70 Flash
Tentacruel - Surf, Waterfall