4x8 plywood cut down to 4x5 ($6.00 at Lowes, the cutting is free - just ask)
Twin sized foam mattress topper ($9.99 at Walmart)
1 1/2 - 2 yrds upholstery fabric (I used Waverly Small Talk Mint Julep, $14.98/yrd)
3M spray adhesive
Hardware to attach the frame to the bed ($.10 for each nut/bolt) & drill
Spray the back of your mattress topper with adhesive, and attach it to the plywood (textured side down). You may want to let the foam hang 1 inch over the edges of the headboard, in order to soften them.
Cut an approx 10" strip from your fabric, and set aside. Now, align your fabric on top of the foam, making sure your fabric is long enough to cover the area of the headboard that will be exposed (above your mattress) and that, if applicable, your fabric's pattern is facing the right direction. If your fabric isn't wide enough to cover the headboard with the pattern facing the right-way (I ran into this problem), get creative. Stitch strips of fabric along the outside edges to widen, or break your fabric up into thirds and stitch.
Once your fabric is aligned, start stapling the top edge to the back of your headboard. Once you have a few staples in, pull the fabric tight and place a few staples along the bottom edge of the fabric (into the front of the plywood). Continue stapling until the fabric is secure. Save the corners for last.
To finish off your headboard you'll need to attach the strip of fabric you set aside earlier to the exposed sides of the plywood (near the bottom). Make sure your fabric is wide enough to cover the area that will be visible, cut to size, and staple.
Attach your headboard to your bed frame.