Note: I'm skimming over a lot of the background info in order to bring you information relevant to the question at hand, but please don't hesitate to ask for clarification where necessary.
First, there's some definitions I need to cover:
- Stats: These are the values you see on your Pokemon for HP, Attack, Defense etc. They are calculated using a formula that takes into account:
- Effort Values (EVs): These are hidden bonuses awarded per stat when your Pokemon defeats another Pokemon. For our purposes this can be considered 'training' a Pokemon.
- EVs range from 0-255 per stat with a maximum of 510 per Pokemon.
- Inherent/Individual Values: (IVs): These are hidden values that correspond to each stat. Your Pokemon got them when it was first generated (either when it hatches or in a Wild encounter). They are static and cannot be changed (without hacking).
- IVs range from 0 to 31 per stat, with 31 being higher (and generally better) than a 0. There are some exceptions to this that I won't go into today.
- Natures: Your Pokemon has a word on their summary screen that describes them, such as 'Adamant' or 'Modest' etc. These are modifiers that raise a stat by 10% whilst also lowering a stat by 10%. Some have no effect on stats at all.
- In Generation 3, the effect is not shown on the Pokemon's summary screen. consult a Nature chart if you want to check a particular Nature's effect.
- Egg Move: A move that a Pokemon can only learn by inheriting it from a parent. Pokemon are broken up into breeding groups allowing them all to breed together within a group. Charizard and Marowak for example, are both in the 'Monster' Egg group
- You have to cross-breed certain Pokemon in order to pass on certain Egg Moves.
Now, onto the question at hand:
Why breed Pokemon?
1. Pokedex Completion
You may have an evolved version of a Pokemon and want it's pre-evolved version. There are some Pokemon that are generally only obtainable through breeding, such as baby Pokemon (Pichu, Cleffa etc)
Alternatively, you may breed rare, version-specific or otherwise hard to get Pokemon in order to trade with friends. Starter Pokemon are a prime example. While you can only get one per game, you can breed it (if you don't have a female, you can breed it with Ditto) in order to trade your friends for their starter Pokemon.
When a Pokemon is generated in the wild, it's IVs and Nature are set randomly.
When breeding Pokemon in most Generation 3 games (Ruby, Sapphire, Fire Red, Leaf Green), there is a guarantee that 3 of the parent's IVs are passed on to the child. This could be 3 from the father, 0 from the mother, 2 from the mother and 1 from the father, or any other combination. The other 3 stats are still generated randomly.
Thus, breeding makes it easier to obtain Pokemon with 'higher' IV values. By selectively breeding and checking the IVs (using an IV calculator), you can effectively breed up a Pokemon that will be - on average - better. Couple this with a specific Nature* and EV training regimen and you can breed a Pokemon that is designed for a specific purpose, such as being a fast attacker or a bulky supporting Pokemon.
* Note that Natures are still randomly generated in Generation 3. There are ways to guarantee a specific nature is picked in later Pokemon games.
Wait, you missed Emerald!
Emerald is apparently a special case. I'll let Bulbapedia explain it:
In Pokémon Emerald, the process is similar but more complicated. First, a random IV is passed from one of the parents to the baby. Afterwards, a random IV of any stat (other than HP) is passed from either parent to the baby; if it is the same stat (not necessarily the same IV value, depending on whether or not the same parent passed it on), it will override it. Finally, another random IV of any stat other than HP and Defense is passed from one of the parents to the baby; this IV will override any of the previous two if it is from the same stat. The remaining stats (a number ranging from 3 to 5) are determined at random, again with the possibility of one or more IVs coinciding with those of the parents.
3. Egg Moves
There may be a particular move that you want on your Pokemon, such as Ancient Power on Charizard. By breeding a female Charmander/Charmeleon/Charizard with a male Cubone or Marowak (for example) that knows Ancient Power, you can obtain a Charmander that will know Ancient Power when it hatches.
4. Shiny Pokemon
It may be easier to breed for specific Shiny Pokemon than attempt to find them in the wild. Having said that, in 3rd Generation there is no way to affect the chances of a Shiny Pokemon when breeding (such as the Masuda Method in later generations).
If you are just casually playing singleplayer, you may want to breed Pokemon for specific Egg moves, but otherwise breeding is not really too important. However, if you are looking at getting into competitive multiplayer battles, you should look into breeding for higher IVs.