Kri, We've done "pure" iterations where one starts after the previous one ends. We've also done overlapping iterations where the coding overlaps, but the completion of each iteration is set appart by a few weeks. If all the iterations start/end the same, it isn't really iterative.

The more "pure" iterative model lets you focus on the features for that iteration. It also lets the users provide feedback on what should be in future iterations. The overlapping iteration model works better if the functionality for the iteration is determined in advance. For example, when the users are following waterfall and the developers are following iterative. It works better if the users are open to at least some change in the iterations.