Supplies:
tube socks (pre-washed)
filler (dry corn or beans PLUS dried herbs like lavender)
Directions:
Cut off the tube portion of the sock, which is what you'll be using for the hot/cold pack. Turn the sock inside out and sew the raw (just cut) end closed. Then turn the sock right side out and fill it to the desired level with your filler and sew up the other end.
Some people use rice for the filler, but it doesn't heat as nicely and starts to smell funny over time, which is why I opt for the corn or beans. To buy cheap, dried corn, just go to a feed store for small amounts or a tractor supply store for large quantities.