Pair programming and code review are each practices that improve the quality of software, as well as promote knowledge sharing. When the Agile vs. Lean, XP vs. Scrum, and vi vs. Emacs debates get slow, developers have been known to debate the merits of pair programming vs. code review.
I have worked with teams that used each of these practices to great advantage, as well as teams that used the both. Not surprisingly, the teams that used both practices had the cleanest code and the fewest problems with customer-reported bugs.