The basic explanation is pretty simple. The technology is based on digital signatures (
http://en.wikipedia.org/wiki/Digital_signature). A bitcoin "account" is essentially just a digital signature keypair, meaning that only the account owner has the private key that's needed to digitally sign messages (similar to bank checks) authorizing the transfer of bitcoins out of their account. Anyone, however, can verify the authenticity of those messages, or send coins to an account by referring to its address (which is a unique fingerprint of that account's public key). There's a public database of all the valid transactions that have ever occurred called the "blockchain", which is copied on computers (nodes of the bitcoin network) all over the world; any computer which has an up-to-date copy of the blockchain can use it to calculate the current balance of any account. A new transaction that you initiate is broadcast to a peer-to-peer network of active bitcoin nodes by your bitcoin client. The transaction becomes permanent when it is incorporated into a new "block" of transactions which is added to the blockchain by a miner (a computer running mining software). To create a new block requires solving a difficult mathematical problem, so that new blocks do not get created too often (about one every 10 minutes on average), which ensures that there is only one longest version of the blockchain in existence at any given time, which is then accepted by all nodes on the network as the new state of the bitcoin database. As a reward for solving the hard problem of creating a new block, the miner that solved it is automatically assigned some new bitcoins (25 BTC) as well as the transaction fees from all the transactions in the block. Any questions?
1) some new bitcoins (25 BTC) >> some new bitcoins (the reward is halved every 4 years and is now 25 BTC)
2) The coins only exist as balances associated with a bitcoin address. What you keep is actually the private key(s) of that addresse(s).
3) The private key and bitcoin address are mathematically bounded like a key and its locker. And importantly you can calculate the bitcoin address of a private key in a few seconds but it would take millions - if not billions - of years to find out the reverse, the private key of a bitcoin address, as you would have to use trial and error and you would need staggering vast amounts of computation to accomplish it.
4)The limit of 21 million bitcoins results from the accumulation of 50 bitcoins each ten minutes during the first four years(50x6x24x365x4=10 512 000), plus, half, 25 bitcoins each ten minutes during the following four years (5256 000+10 512 000= 15 768 000), plus, half, 12.5 bitcoins each ten minutes during the following four years (2 628 000+5 256 000+10 512 000=18 396 000)... and so on and so forth, till the reward of the fours years before is so that it doesn't add nothing to the total of "almost" 21 million, more precisely: 20999999.97690000 BTC.
Here is the code that imposes this limitation,
//on main.cpp
int64 static GetBlockValue(int nHeight, int64 nFees)
{
int64 nSubsidy = 50 * COIN;
// Subsidy is cut in half every 210000 blocks, which will occur approximately every 4 years
nSubsidy >>= (nHeight / 210000);
return nSubsidy + nFees;
}