This a 'sort of' tutorial because I forgot to take pictures of a few steps. It's pretty straightforward though.
I have wanted an upholstered headboard for ages but lacked motivation to make one. With nighttime feedings right around the corner I decided now was the time.

This was our bed before (on a different wall) we've had it for several years. The bed is from IKEA. I didn't hate it but the headboard was so low it wasn't comfortable to lean against and made nursing a baby pretty awkward.

In theory the hidden nightstands are cool but the casters under the nightstands are so small they don't roll on carpet. You have to have wood floors for them to function properly. Had we known this we wouldn't have purchased the bed since our bedroom is carpeted. I don't like the look of the nightstands being out so we just ended up not using them at all- a lot of wasted space.

We considered selling the bed and buying a simple bed frame and supplies to make an upholstered headboard but in the end we decided to just use what we had. We flipped the flat surface of headboard onto the existing headboard. The pieces were the exact same length and width so it worked perfectly.

After securing the pieces together I drilled holes for the button tufts using a 1/2" drill bit. Being that the bed was from IKEA and made from something that isn't actual wood, it was incredibly easy to drill the holes.

Here is the back view:

Here is where I got sloppy and forgot to take pictures.
Using spray adhesive I glued a 1" thick foam (24" wide) piece of foam to the front of the new headboard. I then covered the foam with batting wrapping it around the sides and top and stapling it in place with a manual staple gun.
After this point I was stuck. I couldn't find the fabric I had envisioned for the headboard. I couldn't even find anything out of my price range. It was disappointing. One afternoon Michael and I were wandering around Target and he happened to come across a shower curtain on clearance for $5.98. It was
barely large enough to cover the headboard but it worked! I wanted something with a little more texture but this was the exact color that I wanted so we went with it.

I wrapped the fabric around the headboard and stapled on the back side starting the the center top and bottom and sides. Continue stapling the fabric pulling taut but not so taut that it puckers or indents the foam and batting.
For the corners I just folded and tucked until it looked right and stapled.

The tufts were a little challenging to get perfectly level and evenly spaced. This is what worked for us. Keeping it level with floor, poke an awl through the hole (from the back) until it is just pushing against the fabric on the front. Put a straight pin right where the awl is. Remove awl. Repeat for all the holes. Using a measuring tape measure the pins for even spacing. Adjust as needed. It may seem like a lot of steps but if the buttons are even slightly off it's very obvious!

Make your buttons. I used 1 1/2" size.

With embroidery floss (cause that's what I had on hand) threaded through a long needle I pushed the needle through the hole making sure it came out in almost the exact spot where the straight pin was. String the needle through the button and then back through the hole (very close to the entry point of the needle) pulling taut. Staple the strings to the back of the headboard a couple of times then pull in the opposite direction and staple a couple of times for extra security.

Repeat.

I am really happy with the results! It is so comfortable to sit against (which is what I am doing as I type this!).

Cost break down:
Foam & batting $20 (purchased during a 40% off sale at Hancock Fabrics )
Fabric $6
Buttons $10
We already had the spray adhesive, staples and embroidery floss.
Total: $36.