How does blockchain.info get its info? Is it via the RPC interface for bitcoind or by reading the raw blockchain directly?
They most likely have an advanced block chain indexing backend. Basically they run a node (most likely bitcoinj with custom code) that listens for blocks from all the connected nodes they have. And once they have a block they add all it's info into a database that they run queries on for results.