I know the wallet is capable of generating multiple receive addresses, but I was wondering if people can link an address which receives BTC with what it sends? In other words, can people see through the blockchain what I chose to spend my BTC on later if they send me BTC? I've read that while you can receive anonymously, you cannot really spend BTC anonymously.
Bitcoin isn't perfectly anonymous, this is correct. Additional measures need to be taken in one wishes to remain anonymous with those whom he actually is involved in business with. Bitcoin is fairly good at keeping third parties out of your private business, however. It is true that any person with whom you have already sent funds to can forever associate you with those addresses, unless you use a 'tumbler' service to hide your own addresses; however that only applies to those exact addresses and does not necessarily mean that your other addresses can be associated with them. That's not impossible either, but takes some professional level mapping of the blockchain to do so and is something that can be completely avoided with some care.
Also, by going through tor when spending BTC, am I right in assuming that all you are doing is basically masking your IP address? Everything you spend BTC on can be traced back to the same wallet address since you only have 1 address to send from?
Tor only hides the IP address of the machine from which you are doing business, but the second part of that statement above is incorrect. You do not have only one address to send from, you have as many addresses to send from as you have used to receive previously. Funds are not bundled together unless 1) you deliberately do so by combining your funds under a single address sent to yourself or 2) you create a large send transaction that requires that the client use the funds from multiple addresses in order to meet the amount required. In either case, the association of those addresses can be assumed after the transaction is sent to the network, but not before; and your client will not attempt to reuse those same addresses unless someone sends more funds to those addresses at a later date.