Are bitcoins absolutely anonymous? The answer is no. In bitcoin, a payment transaction consists of an origin address, destination address and payment amount. These transactions are grouped into blocks and stored on a decentralized ledger called blockchain. The blockchain is public and can be monitored (fortunately transactions cannot be linked to individuals) and through some data mining software it can create a user's profile.
To create perfect anonymity a new protocol has been added to the bitcoin one to avoid revealing any data from the transaction. Each user can convert non-anonymous basecoins into anonymous zerocash coins or zerocoins.
Here you may visit z.cashwhere you can learn more about this new protocol which is about to start its experimental beta phase on 7th September. Also visit zerocoin.org for a broader explanation.