The iterative model of the software development lifecycle involves developing software in cycles. Each cycle creates a new version of the software by specifying, implementing, and reviewing a part of the requirements. This allows development to begin before all requirements are known and lets the software evolve through feedback. Benefits include early detection of defects, reliable user feedback, and more time spent designing. Limitations are that each phase is rigid and costly architecture issues may arise from a lack of upfront requirements gathering. The iterative model is best for projects with clearly defined but evolving requirements or large projects where some details can change over time.