Deciding the iteration duration is not easy. It depends on various parameters like Duration of the project, Agile Maturity of the team, risk mitigation factors, Project domain etc. Most of the Agile proponents suggest 2 weeks iterations.
Typically 2 Weeks iteration looks like :
In a matured Agile team with good domain knowledge, the Iteration Planning duration over a period of time becomes stagnant. In the sense, that the team need not spend too much time understanding set of user stories or requirements during iteration planning.
For example, The team who has spent 2 years working on a particular domain can easily understand the enhancement requests.
While working with experienced teams, I have observed that whether it is 2 weeks or 3 weeks iteration, the iteration planning duration stayed almost 2 days. In such projects, it is beneficial to extend the Iteration duration to 3 weeks to gain additional 1 or 2 days saved from reduction in effort spent on Iteration Planning meeting.