...for the transaction it is a part of (assuming it is the input)?
Does it have to look through the entire block chain to find every instance of that address and see what has been sent to it and what has been taken out of it? If so, man is that going to get processor intensive in the future? It can't be the case but I can't find out how this is accomplished anywhere.
Addresses don't have coins. Bitcoin works on the concept of outputs. The input of all transactions is the output of a prior one. The transaction ID of the output being spent is part of the transaction. The bitcoin network simply looks up the transaction and verifies that it hasn't been spent before.
Your wallet doesn't need to do any checking to see "how much is taken out" because an output can only have two states. Spent or unspent. The client keeps a set of all unspent outputs (which is generally significantly smaller than the entire blockchain) called the UXTO. It can quickly look for outputs to your addresses there and take the sum of those outputs.
When your wallet says "you have 13 BTC" what it means it "I have searched the UXTO and found a number of unspent outputs to addresses for which I have the private key, the sum of those unspent outputs is 13 BTC".
The efficiency of the verification of transactions and the computation of wallet value depends not on the blockchain but on the size of the UXTO. This generally increases linearly with the number of users. This is one reason why things like preventing uneconomical dust are important. If the value of an output is less than the cost to spend it, it won't be spent and thus it will remain in the UXTO. This reduces the efficiency of all nodes.