bitcoind has this feature in the sendfrom call.
You're mixing up accounts and addresses.
You can use sendfrom to send from a particular account, but that doesn't change which adress(es) the payment comes from. The concept of 'accounts' is purely accounting within your local client and doesn't affect the generated transactions at all.