possibly the biggest reason they've done this is due to the recession, people who shop at the 4-5 (asda, morrisons, tesco, co-op and sometimes sainsburys) bigger supermarkets want cheap food so instead of filling the shelves with name brands that wont shift they fill it with own brands that will (don't forget that supermarket own brands are made by the name brands, sainsburys sugar is supplied by billingtons iirc, nestle make much of the supermarket own brand cereal and so on (which is why it tastes the same from supermarket chain to supermarket chain)).
special promotions, as mentioned, will be a reason for disappearing product as well as products that are delivered by accident, often they'll be dressed in to sell it and once it's gone it's dressed off.
another problem i've experienced is interfering ****ing managers who pull tickets off when something is out of stock and then fill the gap to make it look like there are no gaps on the shelves, because there are no gaps it wont be manually scanned and re-ordered and if the computerised system has inaccurate sales figures it may lead to the product not being brought back in until the independent stock check (upon which they discover there aren't actually any in stock and so order more). often if the back-stock isn't being worked efficiently it will exacerbate this problem.