Where I work, we have code reviews before checking in non-trivial changes. We don't have design reviews though, which I think are more worthwhile. If a problem is found pre-checkin, then it's usually too late to go back and re-code the work - meaning that these issues are recorded by the coder and should be looked at again when possible; however, with the constant deadlines we work to, there often isn't time to go back and make the improvements.
I think design reviews are worthwhile for verifying the work that's going to take place, and a code review should be used to see if it matches the design (and find out the reasons if not), as well as making sure that the checkin isn't going to screw up the build (check for warnings, files missing from changelist etc).