The best headboard for a bedroom is not furniture at all but a decorated piece of wood that perfectly complements your decor.
First, measure the width of your bed. This should be the width of your headboard. Then on plywood, fiberboard, or OSB, draw your headboard shape on the wood. Cut out with a jigsaw. You may want to draw half the shape on a large piece of butcher's paper, folded in half, first to make a template that is guaranteed to be symmetrical. (Of course, unless you want an asymetrical headboard.)
Hint: Get fabric that's at least 54 inches wide and keep your headboard at least 8 inches short than the width of the fabric to avoid having to seem the material together. The batting to create the "puffiness" can be laid down side by side with no problems since it will be covered by the fabric.
You can see here for the next step of instructions, but basically take quilt batting across the front of the wood and staple (get a lightweight construction stapler) the batting to the back of the board. Now, do the same thing with the fabric, making sure to pull it taut. To make a button hole, drill a quarter inch hole in the wood before you attach fabric and batting. Then once that's on, take a button, stitch into place, and pull thread around a small wire brad on the back to pull it tight. This will also help to tighten the fabric on the front. Again, it's all here too.
To create legs for the headboard, measure from where the bottom of the headboard should be to floor. Then take the height of the headboard at two ends and subtract four inches. Add these to measurements together and cut a 1 inch by four inch board to that length. Screw each leg to the back of the headboard.
Next, mark and drill holes lined up to those in the leg of the bed frame. Finally, attach headboard to bed frame running bolts through the holes and tightening with a nut at the end of the bolt.
There you have custom headboard in several hours and on a very small budget.