Another great idea, which I believe I read about Netflix implementing some time ago, is to always make it a policy to offer everyone the most you can possibly offer them (in terms of complete compensation package) so that when they tell you they have something better you don't get caught up trying to offer them better hours, pay or benefits to get them to stay.