Mistakes can and will happen, so the first thing to do is accept it.
If you have people in your team with overlapping skills, then it's always worth making sure the work done by one person is reviewed in conjunction with another. Sometimes the simple act of explaining how something works is enough to highlight errors - so it can be just as valuable to have the work of a senior engineer reviewed by a more junior one as it is the other way around. Bonus: the junior engineer gets trained as part of the process.
It also helps that nobody gets, or feels, personally blamed for mistakes. If you design something that has a bug in it, then all eyes are on you. If, however, you design something that gets reviewed by someone else and which STILL has a bug in it, then at least the two of you can share the guilt.
No review will catch everything, though. There will always be instances where a mistake isn't the fault of anyone on your team, but instead is down to something external over which you have no control.
For example, I designed in a chip last year which had several pins marked as LED outputs. What it didn't say in the data sheet, was that during reset, they also act as configuration inputs, and that if they're sampled as logic 0 as the chip exits reset, then it goes into a factory test mode where nothing works properly. No amount of reviewing was going to catch that particular bug, and a PCB respin was - IMHO - inevitable.
Try and have a process which avoids silly, unnecessary mistakes, of course - but make sure your team understands that they WILL happen, and plan accordingly. If you can take a rev A board to production then that's fantastic, but it's not the norm.