I made them out of balsa wood because it is easy to shape and doesn't require owning a jigsaw.
At first I tried to directly carve the entire meeples. This proved to be a slow and tedious process that unfailingly ended with me snapping a piece off the meeple (usually a neck or foot) because the balsa wood cracks easily.
The much easier way, I discovered, is to cut out just a very vague shape out of the balsa wood and then use sand paper to actually create all the fine details (indeed, the squarish thing above is all the more detail I cut with the Xacto knife!). I used a heavier grit sandpaper for the initial shaping, then moved to finer grit for the finishing touches. Make sure they can stand up on their own before you paint them!
The meeples were given two coats of paint to get a nice solid color, and then let dry.
I used a semi-gloss polyurethane to give them a good shine and also to make them a bit more durable. I ended up doing 2-3 coats of polyurethane on the meeples (careful, too thick of polyurethane will start making them look yellow).