What is the recommended technique for refinishing hardwood floors?
Belt-style floor sanders were current years ago, but more recently the best bet is a random-orbit style sander like the Varathane ezV sander. 
(source: rustoleum.com)   

The random-orbit sanders don't have nearly the risk of grooving that the belt sanders do, and these ones also have a built-in vaccuum which collects a large portion of the dust, unlike the sanders of my childhood.

I've sanded both floors of my house using that system; each floor took about a 3-day weekend start to finish using a process similar to this one.  I did find that I needed to use a hand-held belt sander for the edges, and since our floors are not all that even we used it to get the existing finish out of some of the deeper spots in the floor as well. If you pull out your trim and use some care you should be able to get right to the edges without having to do more than touch up the paint on the trim.

We just used the water-based polyurethane and have been quite happy with the results, but it's absolutely worth it to put down as many coats as you can - we ended up doing 4.