As a manager, I will almost never make a counter offer. If somebody has gotten to the point of a job offer elsewhere, their head will be out of the game. While money may have started the job hunt, as time has gone on, they've found a dozen other things that are driving them crazy. Those don't go away with the counter offer and will eat away at them until they wind up leaving anyway (with poor performance in the meantime).
The only time I'll consider a counter offer is if 1) the engineer really is good and 2) they don't really want to leave. It's a judgement call and I've only chased somebody once (successfully, I might add).
As a manager, I will almost never make a counter offer. If somebody has gotten to the point of a job offer elsewhere, their head will be out of the game.
This isn't necessarily true. You can get headhunted and receive offers for similar jobs at significantly higher pay. In these cases counter-offers make perfect sense for both sides.
The vast majority of talented engineers will make a counter offer, and will have multiple offers. The idea of passing on someone talented because her "head is out of the game" is silly. Unless you're working on a fantastically interesting problem area, I'd question the level of talent you're getting with those methods (but not all companies need a high level of talent, so you may be finding perfect fits for all I know).
If there really are so many things that drive employees crazy, then something's wrong anyway. There are many people who don't complain about stuff in the open, but get fed up more and more until they just quit - perhaps without telling you the reasons at all. Apart from such peoples' quirks, culture often discourages criticism for all employees. There are many possibilities to avoid such situations, but the one I like best is described in Tony Hsieh's book about Zappos: a public culture book which is basically a report on what goes good and wrong in the company.
It's foolish to believe that people most often leave for the money - I'm quite sure that 50-80% of quittings are due to crappy culture and its consequences (e.g., too small monitors :)).
There may really be something wrong culturally (I try hard to prevent that, but some things are out of my control), but, especially when there isn't, people feel the need to have a reason to leave, a reason to bail on a project, potentially causing extra stress to people they like.
To assuage these feelings of guilt, people start identifying and magnifying things that would never have bothered them otherwise (such as "why does management only value me when I threaten to quit?"). Once those seeds are planted, it is a steady progression towards exit from the company. I'd rather the engineer take the new job and find somebody who is excited about my opportunity.
There are no absolutes in management, though. Like I said, I have chased somebody back into the company who was in his last days with an accepted offer elsewhere.
The real key is to make it so your toxic employees want to leave and your fertile employees have no desire to answer te headhunter call.
The only time I'll consider a counter offer is if 1) the engineer really is good and 2) they don't really want to leave. It's a judgement call and I've only chased somebody once (successfully, I might add).