After delivering the letter to Steven, you can go back to Rustboro City to receive an exp. share from Mr. Stone.
The best HM slaves are probably Marill (rock smash, strength, surf, dive, waterfall) and Tropius (cut, flash, rock smash, strength, fly). You can catch a Nincada if you want to use cut or flash before catching a Tropius.
Some Pokemon have high physical attack and no physical STAB, or high special attack and no special STAB. In some cases, you'll want both a STAB move and a move for its stronger attack stat, because either one can do more damage depending on your opponent's types and defense stats. In other cases, you have an Absol. Do not try to teach STAB moves to an Absol.
Useful HMs and TMs and their locations
TM08 bulk up: Dewford Town, received upon defeating Brawly
TM29 psychic: Mauville Game Corner or Victory Road B1F, northeast corner accessed from B2F
TM35 flamethrower: Mauville Game Corner
If you want a Game Corner TM, it's usually easier to save up regular money than to play the minigames. You can get an amulet coin from your mom in Littleroot Town after defeating Norman.
TM27 return: Fallarbor Town, received upon returning meteorite
TM50 overheat: Lavaridge Town, received upon defeating Flannery
HM03 surf: Petalburg City, after defeating Norman
TM36 sludge bomb: Dewford Town hall, after defeating Norman
TM13 ice beam: Abandoned Ship B1F storage closet
TM24 thunderbolt: Mauville City, received upon finishing the New Mauville sidequest
HM02 fly: Route 119, received upon defeating Brendan/May
TM36 fire blast: Lilycove Department Store 4F
TM19 giga drain: Route 123, requires a grass Pokemon in your party
TM30 shadow ball: Mt. Pyre 6F
TM04 calm mind: Mossdeep City, received upon defeating Tate and Liza
TM31 brick break: Sootopolis City, house in northwest corner
TM26 earthquake: Seafloor Cavern deepest room
TM23 iron tail: Meteor Falls 1F northwest corner, accessed from B1F 1R, requires surf and waterfall
Once you defeat Steven (RS)/Wallace (E), none of this advice is guaranteed to work. You're on your own.