Accounts can help with this stuff, saves having multiple wallets for each coin if you really want to handle your accounting on that level:
https://en.bitcoin.it/wiki/Accounts_explainedUsing accounts probably makes auditing a bit easier (e.g. you can audit the accounts without needing the database server which maintains website accounts)
Accounts are a total joke. See
The sendfrom method sends coins and debits the specified account. It does **not** change Bitcoin's algorithm for selecting which coins in the wallet are sent-- you should think of the coins in the wallet as being mixed together when they are received. There is no way to ask Bitcoin to "create a payment transaction using the coins received from these previously received transactions" without using the raw transactions API(which is not part of the account system.)
What does the above mean in practice? It means you can have an account with a negative balance! There is no isolation of the different accounts at all!