People are generally not motivated by money, but having no raises will make people wonder what is going on with your business and raise job security concerns. The salaries also need to stay competitive, because otherwise your employees may think they are not valued. But there is no rule that certain raise percentage will make people stay. Annual raise of 2-3 percent will show people that you care about them and that the business is doing well.
Employees are happy and motivated when they feel management sincerely cares about their interests and when they have opportunities to grow professionally and to develop new skills. This is a lot more important than raises. People will become nervous if you keep them on the same responsibility level or/and the same type of projects for too long (2-3 years is too long). Many will feel an urge to leave in order to stay competitive in their field and to keep their skills sharp. The raise they get when accepting another job in this case is not viewed by most as a goal, but rather a reward for taking the risk of entering the new environment.
People also stay for good management, so pay attention to attracting employees who have potential of becoming inspiring leaders.