Can I find out the address I am going send from before making a payment? And could this be useful for merchants that want to identify my transaction?
The current client does not allow you to select a specific address to pay from, and this would be ambiguous anyway because the payment may come from multiple addresses. So you don't know what addresses you are sending from until you make the payment. It does, however, allow you to generate addresses to pay to.
The way a merchant usually associates transactions with a specific user or order is to generate a new unique payment address. Using the client, or the json api, the merchant can easily see when the unique address receives the payment and then credit the users account appropriately.
If you want to see what addresses you where paid from in the past then one way is to look up the transaction (most likely using the receiving address) at block explorer.
There is a patch for the client available to let you choose specifically which addresses to use when spending. - http://github.com/bitcoin/bitcoin/pull/415
There is really no such thing as the "address my payment will come from". Transactions can pull in coins from any number of sources which may or may not be associated with addresses. It is definitely not recommended to try to identify payments based on the source address.
If you need to associate a particular payment with a person or account, use an individualized receiving address.