Both InDesign CS2 and CS3 have a feature that will quickly rearrange the pages of a "reader spread" document into "printer spread" order, and then print the pages on a duplex (double-sided) printer.
The CS2 feature is located in File > InBooklet SE. By checking the Create New Document option, InDesign will create a copy of your document in printer spread order. You can then use the normal InDesign print dialog box to control duplexing, printing front sides only, etc.
In CS3, the feature is located in File > Print Booklet. This command always rearranges the pages into printer spread order as the document is printed, which works fine as long as you have a duplex printer. If you don't, you will need to print the "front" side of each spread, then flip the pages over, reload them into the printer and print the "back" side of each spread. You can't do this with the File > Print Booklet command in CS3. Here's a slick workaround:
1. Create a PDF of the document in reader spread page order.
2. Open the PDF in Acrobat 8.
3. Choose File > Print.
4. In the drop-down list next to "Page Scaling", choose Booklet Printing, choose Front Side Only for the "Booklet subset" and print the spreads. Repeat for the back sides after reloading the paper in the printer.