How do I specify my unique address?
You don't need to. Bitcoin will add the coinbase transaction automatically.
Does it depend on what kind of miner I use
and whether I mine in a pool?
Yes, because then the pool gives you a block header to mine, which includes their coinbase transaction. If you put in your own coinbase header, then the pool will reject your shares.
Also what is "generation" and how is it different from other transactions that include transfers of bitcoins?
Just like a normal transaction, it specifies how the money can be spent, but unlike normal transactions, it doesn't need to provide any inputs. However, the amount transferred must be equal to the total transaction fees plus the block subsidy.
What other transactions are included in the Merkle root?
Every valid transaction that your bitcoin client knows about is included.
I suppose that the pool gives different headers which include different transactions to pool members. Right?
I'm not sure what you mean by that - the coinbase transaction is different, because the pool doesn't want multiple miners to duplicate work. But in all cases, the coinbase transaction gives the bitcoins to the pool. Actually solving a block is worth just as much to the individual miner as solving a share.
What happens to the transactions that are not included. Are they included in future blocks?
Sometimes. Maybe those transactions are forgotten. It's called the "memory pool" for a reason - it's forgotten on shutdown.