The best way is to get powerful Pokemon of differant types that are either legendary, or you have raised up for a while. Then, it will be really good, or really trust you. If it doesn't already have good moves, teach it TM's so it is powerful. Once they are about level 58 or 59, with a bunch of revives, and differant types, you can take them.
No its not an HM in leafgreen.
train your Pokemon that's it.
Beat the elite four.
You have to beat the Elite Four once.
beat the elite four and your starter has to be a bulbasaur
all you have to do is not get beaten
You have to beat the elite four and complete your pokedex.
beat the elite four
The same you can do in Fire Red.Read my answer to that here:What_can_you_do_after_you_beat_the_elite_four_in_pokemon_fire_red
you catch and train Pokemon fill up the pokedex and beat the elite four
u can beat elite 4 again ., but they has improve their pokemon level . GL !! ^^
Red is the boy playable character in leafgreen you don't defeat him because you are him.