There are a lot of checks and balances. In fact, it's quite difficult for a moderator to simply use the site for their own need without receiving extra attention. The following story is somewhat humorous, but illustrates why we must be extremely careful regarding what we say and do when there is a ♦ next to our name.
I've been working on improving my Python skills over the last few weeks. This means getting lots of errors, feeding those errors to Google and usually ending up on Stack Overflow. I'm beginning to wonder why I even bother with Google, but I'm digressing. I ended up on a question related to what I was doing, which did not have any accepted or even up-voted answers. I had to go through them and see what might work for me. The first one I saw was nearly a carbon copy of things I had already tried, so I left a comment similar to "I don't think this is going to work at all ..", the user replied quickly apologizing and saying that they'd do better. In other words, they took my comment (just coming from someone working on a Python problem) as a notice from a site moderator.
The reason I went through the bother of relaying that experience is to illustrate that sometimes, moderators need to use Stack Overflow too. We're also still members of the community and we do have opinions from time to time. If you feel offended, make sure you've looked closely at the context.
With that being said, let's get more into the controls that are in place.
Every single thing we do is recorded and can be undone
Every annotation, deletion, super vote, migration, and every other tool in our box has a paper trail. With the exception of restoring a destroyed account (such as what we'd do in the case of "buy Nike shoes here" SPAM), moderators are self checking. This means, any moderator can reverse any other moderator. When there is a paper trail, there is a history. Where there is a history there can be periodic audits. I've gotten several e-mails from Jeff Atwood asking me to explain certain actions. They were valid, just not obvious and this illustrates that people in authority are watching what moderators do.
Your first step is to simply flag the post in question and ask that another moderator review the action.
Part of our job is accountability
I can say, factually that every moderator on Stack Overflow has a low error rate. If a moderator has taken 8,000 - 10,000 actions since being elected or appointed and less than 10 of those actions were found questionable enough to raise here, the moderator is doing a good job. Each site does have rules, some of those rules aren't so popular and we are obligated to enforce them. We're not going to please everyone. I should note, I'm taking these statistics from Stack Overflow, don't superimpose the numbers onto other sites.
I have never seen a case of a moderator being questioned here where the moderator did not respond in a helpful way, at least since I was elected. If you raise an issue here it will be discussed, unless your issue is identical to an issue that has been discussed many, many times.
Community managers are your friends
Stack Exchange employs a bunch of great folks to make sure each community stays healthy and vibrant. As moderators are part of the community, we ask these nice folks for things. As Community managers have the responsibility of handling the community, they often ask us for things. We work together extremely well.
If you feel that a moderator is in some way out of control, you can contact the community team directly. They, more than any other employees of Stack Exchange communicate with us on a frequent basis.
If you want to e-mail Stack Exchange directly, this is the best way to do it. The community managers can and will take action when needed.
To my knowledge, there's never been a case of a moderator 'picking on' another user. Sometimes, the rules that we enforce will clash quite abruptly with the way a specific user feels the site should work, resulting in us interacting with that user quite frequently. Still, anyone is welcome to question any action we take using the channels listed above, just remember that a moderator's chief agenda is the rules that they promised to enforce.
If you are consistently having a bad experience with a moderator, it's probably because you strongly disagree with one of the rules we're enforcing. In that case, the problem isn't the moderator.
Addendum regarding high reputation users
High reputation users have some moderator abilities, the same checks and balances are in place. The key difference is, high reputation users can't cast a single binding vote. For instance, they can't close or migrate a question on their own, several other users have to agree with them.
If you feel that another user at any reputation level is behaving inappropriately, flag one of their posts (preferably, one that demonstrates the behavior) for diamond moderator attention and let us know what is going on.
If you feel like you've hit on a large problem that isn't isolated to just one person, raise the topic here on Meta Stack Overflow. Try, if you can, to avoid calling out individual users unless it is absolutely necessary. If you feel like one user with 20k is doing something that isn't constructive, let us know about that single user privately. If you feel like 20 users with 20k are doing something that isn't constructive, address the group in meta terms as a whole here instead.
Still, since actions taken by high reputation users require several votes to be binding, you might want to ponder why several people would be in agreement prior to flagging or raising the issue here.