Processes such as Extreme Programming focus on delivering 'vertical' slices of the system from the start, thus providing tangible business value in the form of fully working features. This isn't an ivory tower scenario or pipe dream, it is a fully achievable goal.
Using this method mitigates any risks of early cancellation, changes to the business requirements, or even turnover in the development team. If you have running, tested features in place that work from the UI to the persistence layer, then new developers have something concrete to work with in order to build new features.
Using a phased approach only delivers business value at the very end when the final product is finished. That approach is has consistenly been shown to be risky on any but the smallest projects.