An IcebergChart shows all the stories, in priority order, with a line (a "water line") between the ones we'll do this iteration and the ones we'll do later.
The users can add any stories they want to the chart, and can change the order at any time. (But they have to put the stories in some sequential priority order.)
The developers estimate the stories and draw a line between those that "fit" in this iteration, and those that can be done later.
If the users want to bring some story "above the line," they need only reprioritize the stories -- which will push one or more stories "below the line," and out of the iteration.
Described by AlistairCockburn here: http://groups.yahoo.com/group/extremeprogramming/message/79661