While the complete answer to that question depends on your budget, you should presently look for PCI network interface cards, with 10BaseT ports. If you are only linking two machines together, and don't plan on expanding in the future, purchase a crossover cable. This modified 10BaseT cabling allows you to forgo a hub and connect two machines directly together, port to port. If you are purchasing a kit, check out some of the features that come with it. Obviously, most standard kits come with a detailed manual along with the hardware.
Many manufacturers seem to be packing their kits with other software, however.
No additional hardware is needed to share your printer out to all machines on the network. The procedure is up here at This Address. Networks seem to be running over any medium these days. There are currently phoneline networking kits, electrical wiring networking kits, USB to USB solutions, and wireless solutions. Some of these technologies are still rather new, and thus sometimes expensive.