Load balancing is available in CGMiner. I'm not sure about how easy it is
It's very easy. It's as simple as adjusting your config file to add multiple pools, and then it automatically balances them. Or just listing multiple pools in your command line, if you do it that way.
Here's an example config thread. I've been doing it this way for many many months now.
"pools" : [
{
"name" : "pool1",
"url" : "stratum+tcp://pool1.url:3333",
"user" : "pool1user",
"pass" : "pool1pass",
"pool-priority" : "0"
},
{
"name" : "pool2",
"url" : "stratum+tcp://pool2.url:3333",
"user" : "pool2user",
"pass" : "pool2pass",
"pool-priority" : "1"
},
{
"name" : "pool3",
"url" : "stratum+tcp://pool3.url:3333",
"user" : "pool3user",
"pass" : "pool3pass",
"pool-priority" : "2"
}
],
EDIT: Dur, of course you have to add ""balance" : true," into your config file as well. Otherwise the additional pools just act as backups.