Are your employees happy? If they weren't, would you be able to tell?
Some employees pretend to be happy just as long as it takes to secure a better opportunity elsewhere. They may smile to your face and tell you that everything is fine but, in their heads, they might be thinking about leaving the company for greener pastures. So, how can you keep from losing your best people if they won't tell you they're thinking about leaving?
If your employees feel like they can't be honest with you about their dissatisfaction, then you are never going to know when your best people are having problems. The best way to get around this is to foster the kind of environment that encourages transparency and honest. If your people feel like they can come to you when their experience in the organization isn't meeting their expectations, then maybe you can change their minds. Maybe you can convince them it's not so bad or provide some other incentive for them to stay the course. But you will never be able to solve the problem if you don't know that there is one.
What kind of organizational culture do you foster in your workplace? Do you encourage your team to come to you when they're having issues or when they're expecting more out of their jobs? Or, do your people feel like it's too risky for them to be honest with you? If you want to keep the best people, transparency is usually the way to go. It's always better to know what you're up against rather than being blindsided.