to begin with, have a level 40 or so pokemon with at least 10 HP EVs, and an egg. don't have any other active pokemon in your party, though another egg is fine. BE SURE YOU'RE PLAYING EMERALD. it helps to have a secret base with gardevoirs or latios that know memento, for easy leveling.
1) Put the level 40 pokemon in the first slot of your party.
2) Use it in battle, get it down to 1 HP (i suggest getting poisoned, which i usually do by fishing up a tentacool with an old rod and using non-attacking moves until poison sting poisons)
3) Use a pomeg berry on it, it should go to 0 HP and have the (FNT) as its status. If you poisoned it, use a full heal, antidote, or pecha (i think that's the poison-curing berry) on it. If you don't, you'll white out when you take 4 more steps.
4) Switch the egg's position with your level 40 pokemon.
5) Get into a battle. You should send out the egg. (if you have a memento base, use it now.)
6) In my experience, the battle will end after one turn if you don't use revive on your level 40 as the first action (so, don't pick an attack to use, just use a revive on the pokemon you used the pomeg on).
7) Once a pokemon gains enough EXP to go from level 5 to level 6, it will say "EGG grew to level 6!". After you've racked up enough to get to 16 (in Charmander's case), the egg will evolve into Charmeleon. Once that gets to 36, the Charmeleon will evolve into Charizard.
If you have Gardevoir/Latios memento bases, they should be able to get it to level 36 in just 2 battles. So, you get a level 5 Charizard, and all you have to use is 2 revives, 2 pomegs, and probably 2 full heals.
PROS:
Able to Use Dragonite/Tyranitar in Battle Tower/Frontier under "Lv. 50"
Learn moves you'd have to go to the Move Tutor to learn.(the one that lets you re-learn moves)
CONS:
None so far!
EDIT: Credit to WhiteWizard42 for this.