Trading in the Pokémon series is a staple multiplayer mechanic. There are in-game and intra-game trades. In-game trades are with a character in the game, intra-game trades are between games via a cable, IR, or WiFi connection (depending on game versions). Trades are all one for one, you have to give a Pokémon to get one. So, generally, you trade Pokémon that are easy to get in one game with another where they don't exist, getting a Pokémon that doesn't exist (but is easy to get in another game) in your game. None of the games to date have all the Pokémon that exist so you have to trade to get them.
Starting with Generation II, items can be given (held) and will go with the Pokémon in trades. In some cases this a stone or like object that will cause the Pokémon to evolve when traded. There was also a 'Time Capsule' added to trade from Generation I to II and II to I, but Pokemon can't be traded with Generation II moves to Generation I. Generation III adds Pal Park where players can transfer Pokémon from their Generation III games to Generation IV games. In this case Pokémon cannot be returned from Generation IV to Generation III and as with the Time Capsule, Pokémon sent through Pal Park cannot know any Generation III HM moves. Trading between Generation I, II and III, IV, V doesn't exist, but the Pokémon from Generation I & II are available and Generation III and up games. There will be a way to transfer from Generation IV to V as there was an announcement that an alternate-colored Legendary beast can unlock an event where you can capture a Zoroark.

Pokémon that evolve through trade