Bitcoin is very resistant to typos because the addresses contain a built-in check code. So if you had simply mistyped a few of the letters or numbers in the address, it's unlikely the client would have let you send them. If, however, you pasted in a different and valid address, the coins are already transferred to it permanently. In this scenario, Bitcoin works pretty much like cash--there is no way to get it back after giving it away.
It is highly unlikely, you made a typo and were still able to send coins. There is a difference between an invalid address and an incorrect address.
All bitcoin wallets/clients check if addresses are valid.
Bitcoin addresses are the PubKeyHash encoded in Base58 with a version value and a checksum. The checksum is the leftmost 32 bits of a double hash of the PubKeyHash. The format of the address is often referred to as Base58Checked in technical documents.
Since the checksum is 32 bits the probability of entering an incorrect address that will still decode to an incorrect but valid PubKeyHash is roughly 1 in 4.3 billion. So, on average, 4,294,967,295 out of 4,294,967,296 times a typo will produce an address that is incorrect AND invalid. When decoded the PubKeyHash will not produce the proper checksum, the error will be detected by the client/wallet, and the transaction won't be created.
To actually lose coins to a typo you would need to produce not just any invalid address, but one that is valid but incorrect and the odds of that happening are almost zero.
In that extremely unlikely event (1 in 4.3 billion is 10x less likely than winning the US PowerBall lottery), the transaction will be irreversible and only spendable by the person who has the private key for the incorrect address/pubkey. Given how many private keys are possible, it is almost certain that nobody ever has or ever will have that private keys and the funds will remain forever unspendable.