Yes and Yes.
What might fit it all together is:
1) Bitcoin only has the concept of inputs & outputs.
2) All transactions (except coinbase) have an input and all transactions have outputs.
3) The input of a transaction (every transaction) is the output of some prior transactions.
4) You can't spend part of an output.
So say you have an output of a prior transaction with 5 BTC. You want to spend 1 BTC. It is impossible. So the client does this.
Input A - 5 BTC
Output B - 1 BTC
Output C - 4 BTC
B is the address of the person you want to pay.
C is a NEW ADDRESS from your keypool.Coinbase transactions are the only exception. They are what reward miners and they mint 50 BTC out of thin air.
Transaction fees are simply a difference between input and output. Using the example above if you wanted to pay a 0.01 BTC tx fee it would look like this:
Input A - 5 BTC
Output B - 1 BTC
Output C - 3.99 BTC
Notice the Input is 0.01 more than the combined outputs. When the block is constructed the miner adds up all inputs and all outputs and adds the difference to the block subsidy and that becomes the coinbase. So if this was the only transaction for the block the coinbase would look like this
Input: (NOTHING)
Output: Address Z 50.01 BTC (miner's reward address)
An example of a real transaction:
http://blockchain.info/tx-index/3395028/f1bec123cb4a1ecef1f6aa1086de44be781f813de359e7da4d2b1a4aa29a7181Notice the input is 4.68577 (you can click the link as see the output that produced this input and go all the way back to where the coins were born).
There are two outputs
2.70527 & 1.98
One is the change. We don't know for sure which one but most likely it is the 2.70527
There is a difference between the input 4.68577 and the combined outputs 4.68527. The difference 0.005 is collected by the miner as a tx fee. The fee doesn't need to be specified. Miners collect any difference between inputs and outputs as a fee.
An example of a real coinbase transaction:
http://blockchain.info/tx-index/3395037/09af493daf707bf7e01f930134315cc74c9a6439b332cc648dde6d477109322bNotice it is NOTHING as input and 50.02351 as the output.
50 BTC is the block subsidy (going to 25 in Dec 2012)
0.02351 is the total tx fees for the block (if you added up all inputs and all outputs in the block there would be a difference of 0.02351)