An address is essentially an “account number” that you can give to people so they can send you bitcoins. Your wallet can generate billions of addresses, so you can use a new address every time you want to receive a payment.
To be a little more technical, when you send and receive bitcoins you’re actually using a pair of keys:
Private Key – This is a randomly generated number.
Public Key – This is a number calculated from the private key.
An address is essentially a user-friendly version of a public key. So when you give someone your address, you're actually giving them one of your public keys. And when someone “sends” bitcoins to you, they are essentially creating a new box of bitcoins and putting your public key inside a lock on top of it.
Bitcoins are locked to a public key.
And when you send bitcoins to someone else, you use your private key to unlock the box.
We can use the corresponding private key to unlock.
This is getting in to the realms of cryptography, but this kind of technology has been around since the 1970s (see RSA), and bitcoin just uses it to construct a system that works as a digital currency.
Summary: We use private and public key pairs from cryptography to provide ownership over digital data (i.e. bitcoins), and an address is just the convenient version of the public key.