It's a pervasive issue but I think that the best way is with a hierarchial but anonymous system of moderation. One in which there would be users, jannies, mods and admins. Users post and report, jannies can provide an initial ban plus a reason, if the user appeals this is escalated to a mod. If the appeal is obviously complete bullshit then extended ban, if it's reasonable then no change, if it's correct then user is unbanned and the janny is given a strike. Too many strikes in a month and the janny loses his position. If the janny disagrees with his strikes he can raise it to the admins who may take action against the janny or the mods depending on who is in the right.
The important part is the anonymity. You can't let any part of the moderation team interact with each other in a way that they would recognise each other with the exception of admins and the site owner. If you do, it could lead to bias. The most they should have is a Q&A board for moderation in which everyone is flagged either as janny, mod or admin.
To further ensure anonymity, randomise reports and appeals. Reports for the board are sent to all the board's jannies, whoever reviews it first makes the decision. Appeals are sent to a random active site moderator within 24 hours of the appeal to ensure they're not always in the same timezone as the janny and won't be biased.