I vote online- buy on the fly.
One can almost always get better deals by online rather then buying locally, so unless you need the hardware ASAP I generally recommend purchasing online.
Pre-orders have the benefit of the fact that you will usually get the hardware a few days before it's readily available, the disadvantage being that you will often have to pay slightly more then you would had you waited until it's available.. also on occasion the place you pre-order from may not even send it until it's readily available... which by then means it will have been cheaper had you waited.
As for where to purchase from- I generally check PriceWatch for the best price for the hardware, then check each vendor at ResellerRatings. I choose the vendor that has the best price with a very high rating at ResellerRatings.