Never Have the “What Would It Take to Keep You Here?” Conversation
When someone says it's about the money, it's never about the money.So in order to prevent the "I have a better offer" discussion, you have to innoculate your people ahead of time. Make them immune to better offers by making them unavailable to those who would make them.Find out what really motivates each person and engineer the "perfect job description" for them:  - meaningful work
  - quality working conditions
  - proper work/life balance
  - appropriate compensation / benefits
  - a well-defined mutually agreed upon future career path
  - proper recognition
  - congruent culture (work mates)

Make it so that people love coming to work. It's not that hard if you really want to.Do that and you will never lose them. If you can't (or won't), then they were never really yours in the first place.