An agile development iteration (a two week mini-project) is a feedback opportunity and a chance to take corrective action. If further information about a requirement becomes available; fresh requirements, or refinements to existing requirements, are introduced at the next iteration. Agile developers know that as the customer gains experience from using early partial implementations (s)he will become more knowledgeable. More knowledge means more valuable feedback about how well the partial implementation works in real live running of the business.
This feedback is valuable input into later iterations. A crucial part of the agile development process is to place the customer firmly in control of features. If the customer really feels that it is more important for the background to have a blue colour, than for the stock numbers to be correct, then the customer should make that call.
Agile development processes are deliberately organized to allow, and even encourage, the customer to change his/her mind. This is crucial to managing the project as, by definition, they become more knowledgable.
When course corrections are made every two weeks it is almost inevitable that the finished project accurately targets current business requirements.
In addition to accurately meeting the final requirements, the software is already adding value. This value addition started as early as the first implemented iteration and users are already well experienced in it. Benefits are not deferred until project completion.