Should companies with in-house UX teams evaluate their own work or engage external UX consultants to do so?
Bringing in an external consultant to evaluate a team's work is a BAD idea, for several reasons. First off, the consultant can be the best UX professional in the world who makes the most cogent points possible… but he or she will still be considered an "outsider" by many of the in-house design team members. This isn't a criticism, this is human nature: We all have something called "in-group bias", which is the tendency to favor your own group over another. The opposite is out-group bias where, people from a different group are viewed more negatively and their opinions ignored or criticized. An outside consultant is by it's very definition "outside" the group, and having that person be involved in a critical review activity… well, it could end badly (or be ineffectual at best).
I'm a firm advocate of "peer designing" where two designers work together on a project, and this way the design evaluations are a natural part of the design process.
When it comes to formal design evaluation, I maintain the best way to do this is through a design audit against an agreed-upon set of metrics/heuristics… but is done by people IN the team, not outside of it. Keep in mind the personalities at play: I'm my own worse critic, so I beat my own work up in addition to getting feedback from my peers… but not everyone can "detach" themselves from their own work and accept criticism well.
Another obvious way to evaluate designs is to test them with users (making sure the person who designed the work shouldn't facilitate the test, to prevent any unintentional bias).