Its a money making tactic. You only give them enough. Never all. Make them come back.
That doesn't make sense at all. Technology moves fast enough to incorporate the newest technologies in each refresh. There is no real reason why a company would intentionally cripple a product to drive sales of the next product. It actually costs money as it makes people wait AND due to the time value of money (100 dollars now is more worth than 100 dollars next year).
This is much more a case of balancing the risks and benefits of getting a product out quickly vs waiting for technology or development / testing to progress to incorporate more technology.