There are a few important concepts in G1 modding (please correct me where I'm wrong):
- SPL: The Secondary-Program-Loader is a piece of firmware that is basically the bootloader - it loads the OS. You want to replace this with a more fully functional version. I use the HardSPL loader. This loader, as well as some of the other ones out there, gives you the option to use fastboot (here or here), which lets you install on partitions on the phone and boot.
- Recovery partition: There is a partition on the phone that has a kernel that is used only when the phone is booted into recovery mode (turn on holding power and home at the same time, then press alt+l to get to the menu). Installing a custom image here, like JFv1.43_Recovery.zip from android-roms, gives you an extra option in the recovery menu to use nandroid to backup your entire system (not sure if it includes the sdcard). Usefull if you want to fiddle with your firmware or wiping your phone and want to be able to restore.
- System ROM: This is the system that runs during normal booting and operation. I replaced this with JesusFreke JFv1.51_CRB43-ADP.zip using instructions here. It gives you a kernel set up for wifi-tether, and also includes a couple of extra neat things like the ability to multi-touch pinch zoom in and out on the browser. If you're just interested in wifi-teher, you probably don't need JesusFreke's ROM. The wifi-tether link has an alternate kernel that is a smaller mod. Note that installing the JesusFreke ROM recommends wiping the data on the phone.
Android-roms at http://code.google.com/p/android-roms/ is a useful site that pulls together most of this info. JesusFreke's blog has details on each ROM release and what was changed from the stock ROM.
Finally, if you have an android dev phone and lost root with the cupcake update. The directions at http://forum.xda-developers.com/showthread.php?t=518251 worked for me to regain it. I think these directions require the custom SPL, such as HardSPL.