Two recent blog posts explained what I think the Drupal development cycle is like; see the Gartner hype cycle and Drupal and the Drupal mood cycle. These thoughts came from living through many major Drupal releases and noticing patterns of developer and user mood as release dates approached and receded. Make sure to read these posts first, before reading this one.
Developers like to release code. "Release early, release often" wrote Eric S. Raymond in his famed essay on open source, The Cathedral and the Bazaar, and that philosophy has facilitated the rise of many open-source projects -- including Drupal. At the same time, many end users dislike change: they would prefer that software versions stay stable as long as possible, because change means work or cost.
Personally, based on listening to a lot of people, I believe that for Drupal 8, the release date should be 18 months after Drupal 7 reaches its Plateau of Productivity.
I think 18 months gives users plenty of time to enjoy Drupal 7's productivity at its peak before facing a possible update. At the same time, it's short enough that developers won't get bored. That said, I'm happy to brainstorm about this more but at least it puts a first stake in the ground.
I can't say how I'll determine that Drupal 7 has reached its Plateau of Productivity. It will be evident in several ways -- the decrease of new Drupal 6 sites, the stability of contributed modules, the number of websites on Drupal 7, the feedback I get when attending Drupal events and so forth. I'll make an announcement at that time to start the clock running.
Right now, I'd predict that the Plateau of Productivity is 6-9 months away, meaning Drupal 8 won't be released for at least another 2 years.