How to make a transaction start from a given address? Usually, a Bitcoin wallet includes multiple addresses, and each address has a balance of 0 or more Bitcoins. When a payment is sent out, outgoing Bitcoins are taken from one or more addresses, depending on their balance.

Is it possible to choose the transaction source address (assuming that specific address has enough balance, of course)?

I can think of two ways to manually enforce it:


Use (or create) a new wallet with a single address, send Bitcoins from your main wallet to that address, then send the payment from the new wallet.
Move all the Bitcoins in your wallet to a single address in the same wallet; then each new payment will have to be origined from that address.


Is there any simpler way to obtain this?

If this feature is not included in the reference client, does any other wallet include it?
As of version 0.9.0, the bitcoin-qt reference client includes a "coin control" feature.  When you create a transaction, it lets you explicitly select which past transactions will be used as inputs.  You can enable this feature via the Display tab in the Options dialog. 

This accomplishes what you are asking for.