The limitation in the number of bitcoins is by design and determined in the protocol code. It is a desirable feature because it makes the money supply predictable and independent of human decisions like it happens with fiat money.
You are right about the block finder being awarded the reward, but that reward halves every two years. At this moment it is 25 bitcoins per block, but in July it will go down to 12.5 bitcoins per block. And two years after that, it will be 6.25. Then, when the total supply gets to 21 million, there will be no more rewards. Blocks will keep happening, but the fees of the transactions in the block will be only reward the miner will get.
From bitcoin.org FAQ:
Bitcoins are created at a decreasing and predictable rate. The number of new bitcoins created each year is automatically halved over time until bitcoin issuance halts completely with a total of 21 million bitcoins in existence. At this point, Bitcoin miners will probably be supported exclusively by numerous small transaction fees.