Mining is process of validating transactions between users, performing some special algorithm described in Bitcoin.pdf above. Technical background is quite difficult, but basically Bitcoin network need as much computation power as possible for doing this task, to protect network against many types of attack.
Miner is specialized software searching for unconfirmed transactions on network and include them to the algorithm which it performs. Once the miner finish his task by finding specially formated data, also called as "proof of work", and push this data (called "block") back into the Bitcoin network, the transaction included inside this block become confirmed ("1 confirmation" in Bitcoin client).
As incentive to attach own computer into the grid and start mininig software on it, miner can take 50 BTC for every valid block he found for the network. It is done by special transaction included into the block itself. This is the reason why there is such hype about mining around, because those 50 BTC was pretty easy to earn and when Bitcoin reached the parity, it become very profitable.
But Bitcoin network has many self-regulating algorithms included. Namely it is "difficulty", which regulate number of blocks mined every day. Bitcoin network is trying to find 144 blocks (=7200 BTC in miner rewards) ever day, without care how many people is mining. So as the network grows, it become harder and harder to find valid block for every participant. I'm talking it because I feel people are too much oriented about mining, but this is just technical solution how to kick up the economy and spread Bitcoins between people. Mining is NOT a target, so if you don't have strong mining rig, nevermind! As common Bitcoin user or newcomer, you don't need to understand whole stuff around mining and you don't need to care about mining at all; you can sell goods, provide services or whatever and earn much more Bitcoins than by setting up Yet Another Mining Rig (tm).