We have forgotten the meaning of iteration, and are working in increments instead. We are expecting an 'iteration' to contain a number of fully-completed stories, which we can then forget about and move on to new features. The problem with this is that when we deliver those stories, the customer is not entirely satisfied, and we have to introduce new stories to refine the design.
Iterating is like progressive prototyping and validating as you move from vagueness to realisation. Incrementing is like building a wall brick by brick. But incrementing suggests you know exactly what you want. We all know that's not true. Your notion of what you want becomes clearer over time. To help deal with this uncertainty, Jeff encourages us to:
Follow the money back to the customer/user and prioritise business goals before stories.
Keep options open and avoid choosing a solution too early ("a requirement is tantamount to an irrevocable decision"). Maintain bigger stories describing what users want to achieve and defer writing smaller stories that describe software until the last responsible moment, and
Build (functional) quality iteration by iteration.
As Johnny Rotten said, "I don't know what I want, but I know how to get it" - iterate!