In the iterative model, each successive iteration adds more details to the previously implemented functionality. For example, if we were to design a retail banking e-statement web application with all its pages giving only the title of the page in the first iteration. This iteration helps understand the relationship and navigation between pages. In subsequent iterations details of each page are added thereby completing the e-statement application.
Advantage? Entire system is visualized like a broad wire frame and over a period the details are filled in. When done in the presence of a BA / end user, it makes it easier for the end-user to visualize the complete system as well as help add the detail as the development progresses.
However, in Incremental approach developer develops the software in small increments. It helps the user and the BA priorities the features which are more urgent from business standpoint. For example, if we were to break up a retail banking e-statement web application into following sub-applications: enroll for e-statement, view e-statement, and see, change, cancel e-statement- each of the increments could be planned, analyzed , designed and implemented in a waterfall style. Once one increment is complete the software is moved on to the next increment.
The essential difference between incremental and iterative is that iteration successively improves upon the existing functionality whereas incremental adds newer modules to the previous piece of code.
Many new methodologies tend to be a mix between incremental and iterative.