I believe getreceivedbyaccount sums incoming transactions, but getbalance sums all transactions (sent, received, mined, fees) on a given account.
For example, if an account received 200 BTC, then subsequently sent 20 BTC, the functions would return 200 BTC and 180 BTC respectively.
I haven't done enough transactions to test this, however, so I could be wrong.
^ this