Blackouts are, as far as I understand it, largely to do with local area cable/TV/network and advertising contracts. eg, it's about money. Plus trying to get more people to watch "out of market" games on TV. I have mlb.tv and I couldn't use it to watch the A's and Giants baseball games even if traveling some distance, for example, since I'm in that blackout area. But I can watch Boston play all their games (NESN broadcasts),
except when they're playing the A's in Oakland...then mlb.tv is blacked out and I have to watch it on CSN/TBS or whatever. Which means you have to have pay-cableTV, too.
Occasionally, "national" broadcast games are also blacked out (this happens a lot with Fox games) because again, Fox wants you to watch via TV/cable and has contracts to exclusively broadcast them. But if the Saturday Fox game you want to watch is, say, Boston, and you live in the A's broadcast area, you can't see the Boston game because in your area Fox will be broadcasting the A's game (since they assume that's what locals want to see) and it's still blacked out on mlb.tv. Those are days where I get very angry, because I can't see the game (live) at all, then.

One of the frustrating things is that the "blackout areas" can be nonsensical. Like if you live in Hawaii, they blackout most California team games I think. They're considered to be the "home market" for
six teams. Which is ludicrous.
Anyway, this wiki article probably explains it better than I could.
https://en.wikipedia.org/wiki/Major_League_Baseball_blackout_policy
Or this blog article complaining about it/calling for change:
http://sports.yahoo.com/news/mlb%E2%80%99s-blackout-problem-keeps-sport-in-dark-ages.html