I find accounts pretty intuitive for the most common use cases. If you're running a website selling something, you can just create one bitcoind account per user on your site. Use getaccountaddress to get the address for deposits to that account, sendfrom to make withdrawals from that account, getbalance to get the account's balance, and move to move funds from one person on your site to another person on your site. No need to worry about tracking or updating addresses.