I don't know how representative it is as a whole, but my experience (working for various companies of 15-200 employees) has been that there are two classes of engineers:
- Those that have been there for years (3/5/since the beginning), are usually underpaid for the long hours they put in, and may or may not have stock options.
- The rest of us.
And it seems that the first group rarely moves on. I suspect it's because they're too heavily invested in the company with some sort of golden handcuffs, or they've become too comfortable and don't want to look for a new job. They also seem to prefer ignoring the fact that they're underpaid comparatively to more recent hires or to the market.
The second group usually moves on after 10-12 months on the job, sometimes up to 18 months. Sometimes it's a lateral move, sometimes it's a step up, but it's almost always for more money and slightly different technologies or a better work situation.
Short of the usual advice that if you're dreading going to work, aren't feeling challenged anymore, or your managers don't support you then it's probably time to change jobs; it would seem that the typical time to move on is every 12-18 months.
Keep in mind that these are my anecdotal observations, it may or may not be representative.