Iterations are used to reduce the risk of software development projects, and to deliver high value functionality to the user early on in the lifecycle. You essentially divide up the project into subsets of functionality based on, for example, use cases or use case scenarios. At the end of each iteration, you demonstrate or deliver these pieces of functionality to stakeholders, so that they can use the features and provide feedback. This feedback can be incorporated into future iterations. The iterative model embraces change through a feedback loop, whereas non-iterative models seek to prevent changes, which in turn increases the risk that the developed system does not meet the stakeholders' needs.
Did this help? You can provide feedback at Jazz.net (registration required): Comment in the forums or submit a bug