This morning I read the @AgilePDX mailing list posts and saw James Shore's response to a question about predictability and agile software development. His article in response pointed to 2008 article he'd written. Brilliant, just brilliant.
Use Risk Management to Make Solid Commitments
Does this apply to YOUR team?
My one caveat to James' thinking would be this... Any team making a guess at the iteration velocity over time needs at least some semblance of consistency. The make up of the team should be predictable (no major turnover issues iteration-to-iteration) and the resulting work output will reflect that. If you look at your team's measured velocity and see more volatility than you account for, a numeric sequence like [10, 12, 4, 15, 20, 6], then you really have nothing to go on. In that instance, even the most conservative projection is pure guesswork. That's my opinion. And it was born out quite correctly recently. :)