Pair programming if done on task such as "let's make this completely standard thing we've done five times already and need a slight variation of" is horrible. When working with new developers, if they're senior or junior, is great though. It doesn't have to be full days but a few hours a day of pair programming brings someone up to speed incredibly quickly.
When there's hard problems to track down, I think all developers go to pair debugging. If not only for the rubber duck effect.