How do I cancel my blockchain transaction (still unconfirmed)? I am using blockchain.info.

I have made a bitcoin transaction of 22.00883562 BTC to the address 1A9eUAc78tGx65X3CuC9WfSKXXgxjU8ccC.

You can see the transaction at https://blockchain.info/tx/97c1af82111cdcf17f878eb6df20c17c59c1b1fc04e8cdce36b8ac6c6d1c969a

I have paid a 0.001 fee but it has been almost 30 hours and it still shows "Unconfirmed".

What could be the error? Also, more importantly, how do I cancel the unconfirmed transaction and get back my coins?
Cancelling unconfirmed transactions is easy.   Just submit a higher fee double-spend transaction.   For example: if you sent a 0-fee transaction, it could take a day before it gets mined onto a block.   You can send another transaction with the same inputs that just sends the money back to yourself.   On this transaction you put a higher fee.   This becomes more likely to be mined and will get included in the blockchain - invalidating the slower-to-confirm original.
Some tools to help out: https://github.com/petertodd/replace-by-fee-tools