I think that it's generally accepted that pair programming is sometimes are really effective tool - two devs hacking away at the same thorny problem, or one dev showing another how it's done are both really valuable.
The important question is: how much?
XP says all the time, but I spent a lot of time dealing with really mundane tasks - everyone does. New tools like ASP MVC help reduce this time, and good design reduces it too, but everyone has some and that time is wasted if two devs are doing.
Even more than that an awful lot of the time the problem just isn't that difficult - a bit of analysis and in depth thinking is needed, but it's not really a two-person job.
I think a good, practical and real-world way to answer this question is to look at what real world successful teams do. So:
How much time to companies have their devs spend pair programming?
Google - No more than 5%, according to Steve Yegge
Microsoft - About 6%, according to a survey of internal MS devs
37signals (inventors of Ruby on Rails) - None, but use small close teams instead according to their book: Getting Real
General usage - around 31% of agile shops use pair programming at all according to VersionOne's 2008 survey, but it's not known how much they use it (all the time, or only some?)
My conclusion? It fits into my more general guidelines, but while pair programming is a really valuable tool it isn't appropriate all of the time, or even most of it. Use it to share information, attack a tough problem, learn a new technology or mentor/train. Don't use it the rest of the time.