Kent Beck says this (Tyner Blain blog):
"...customer’s don’t know what they want, we should start building stuff right away, with the expectation that by seeing tangible results (good or bad), they will have epiphanies about what they really want. This approach treats requirement extraction as an emergent process, like strip-mining. With each new layer of mining, we unearth a new set of hidden requirements."
Build first ask questions later goes too far. I think we can prototype (hi or lo-fi) and show customers a vision of what they've requested. From that we can help them discern what they need. This makes me recall a session from Agile 2007, when we demonstrated functionality by each person playing a different role (replicating the technology) and users interacted with the interface. It made for fast process adjustment to user feedback.