The moves a Pokemon can learn, by either Level Up, TM, HM or Move Tutor. If the Pokémon has a good moveset then you will stand more of a chance of defeating the opponent as you have moves that will either cause a lot of damage or will raise your stats quite a bit. Some Pokémon are good HM Slaves as they can learn a decent amount of HM Moves and are easy to catch. Some examples that quite a few people use are:
HM Slaves will be the Pokémon that are with you to learn the HMs that you will need as you go through the game. The disadvantage of HM Slaves is that they take up room in your party so you can only have a few Pokémon that are good at attacking. HM Slaves are used to stop you from using up the move slots on your attacking Pokémon so on them you can have some good attacking moves. Many though, combine both HM's, TM's, and moves naturally known by a pokémon in their pokémons' move slots. This allows for all around good battlers and does not take up extra room in your party.
Related ThreadsCompetitive Moveset and Team Building Help Thread - last post by @ Aug 11, 2007
Competitive Moveset and Teambuilding Help D/P - Use Explosion Pikachu!! - last post by @ Apr 7, 2008
Competitive Moveset and Teambuilding Help D/P - WiseLugia Edition - Pokemon, Choose I You! - last post by @ Aug 6, 2007
Competitive Moveset and Teambuilding Help D/P - WiseLugia Edition - "mmmmm Lopunny..." - Weavilax - last post by @ Jul 22, 2007
Competitive Moveset and Teambuilding Help D/P - WiseLugia Edition - Magikarp, use Hyper Beam! - last post by @ Mar 28, 2008