Battery - Lead Acid or NiCad or NiMH will all work. Lead acid is the cheapest and the heaviest (I buy the Power Sonic units from Mouser). NiMH is the lightest and of course the most expensive. A good "smart charger" is recommended for the NiCad and NiMH batteries. Lead acids can be charged on a standard car battery charger if the current is limited to around 1/10 battery capacity.
Halogen Bulb - 20 watt MR-11 or MR-16 reflector lamp. (MR-11 is the smaller style) Available at most hardware stores for less than $7. Quality between brands can vary greatly. Try to find one with a glass cover as this will protect the bulb from dirt and moisture. The pins can be difficult to solder wires directly to, but I have had good results by using a small printed circuit board (see photos). Some people have used crimp type pins. It is possible to find the mating 2-pin sockets at specialty lighting stores or through surplus dealers.
Switch - Any SPST toggle switch that will handle 12 volts @ 2 Amps. Radio Shack carries many styles. Can be mounted near the battery or in the same housing as the bulb.
Fuse - Installing a fuse in-line with one of the battery terminals is highly recommended as it will protect against damage to the system in the event a short occurs. I recommend PTC self resetting fuses such as RayChem Polyswitch.
Some other DIY Bike Light pages: