Buying formal wear, especially for a winter formal dance, can be a stressful occurrence. However, with some well targeted shopping, getting the formal dresses you need can be enjoyable.
If you have money to burn (for dresses upwards of $300), start at the upper end, by browsing a website of a higher end department store like Neimain Marcus, Saks Fifth Avenue, or Bloomingdales. Find some styles you like so you get an idea of what's out there and then go to the physical store. You'll be better prepared to face the hoards of dresses if you do so and understand what your options are.
If you have a decent sized budget though rather than a massive one, try places like BCBG, French Connection or moderately priced department stores like Macy's or Nordstrom's for dresses in the $200-$300 range.
If you're on a budget though, but want the same style, a few options you can try are discount designer sites like Gilt and Ideeli. These sites offer sample sales with designer swag at greatly reduced prices, but, as the format is sample sale, you must act quickly and decisively to score the deal and your size. If that's too stressful and you won't be needing the dress for another occasion, try Rent the Runway. This popular site offers rentals of top designer dresses from anywhere between $50 and $250, at usually about ten percent of the original price. For that, you get two sizes of the dress - you size and a back up - and four days to use the dress. If it doesn't fit, you can send it back for credit.
If that still sounds too expensive, check out some local vintage or second-hand stores. You can often score great deals there on pieces that no one else will have.