Hi scott, and welcome to the Webmaster World Forums.
You sure have picked a humdinger of a question! It's one of those is is easy to ask but hard to answer.
The number of quirks between printers, operating systems, browsers etc. make it almost impossible to give a one-size-fits-all anwser, at least if you only want to write an HTML page and have people print that out.
When I want to offer an easy to print page, I usually create a .pdf file and offer a link on the page that says "printer friendly version of this page".
I have picked up a few hints about designing HTML pages to print sanely over a variety of browsers and printers. First, design the text for a width of 640. Then try to place one page's worth in a table, and close that table and start a new one. Most browsers try not to split a table into pieces across a page break.
But I still recommend a .pdf -- it's a no-failure solution, and you completely control the formatting.