Panties are not actually all that difficult to make, if you have a bit of experience sewing. A serger is preferable but you can make them with just a regular zigzag sewing machine too. They're not expensive either; there's not much material required. You need about a quarter to a third of a yard of a knit fabric (nearly any kind will do) which will easily make 3 or 4 pairs, plus a couple yards of lingerie elastic per pair. If you make thongs, you can probably do 10.
Step 1: Pattern
Take a pair of panties you own that fits how you like, and make a pattern from them. Lay them out on a piece of paper and draw around the edges, making sure to stretch the elastic just enough that the fabric lies flat. I find this is easiest to do by pinning half of each piece to an ironing board with a piece of paper underneath. See the pictures for more detail.
You'll end up with two or three pieces: front, back, and crotch (often the crotch piece is cut in one with the back or front). Make sure the side and crotch seams are the same length on each piece so they'll match up properly when sewn.
I made two patterns, one with side seams and one without; the side seams one turned out better so all the pix, except for those on this page, are of that one.
Step 2: Cutting
My pattern is cut with the front and back on the fold, but not the crotch piece. If you have half a crotch pattern, just cut that on the fold too, twice. You want one front, one back, and one crotch piece of the main fabric, and one crotch piece of lining. An old t-shirt works great for crotch lining!
Step 3: Sew Crotch & Lining
Lay the two crotch pieces down with the back piece in between in a sandwich, edges together, in this order:
# crotch lining, right side up
# back, right side up
# crotch main piece, right side down
Using a serger, or a wide zigzag stitch, sew along the edge through all layers. Roll the back piece up in between the crotch pieces, and lay the front piece in between (probably a little rolled up too) in a comparable position between the remaining ends of the crotch pieces. Stitch these too. Turn the whole thing inside out through the sides of the crotch pieces to get your panty base.
Step 4: Leg Elastic
Take your elastic and wrap an end around your leg where you want the leg holes to sit. Mark the end with a pin but don't cut it - sewing the elastic is easier if you have a tail. Make one more pin mark at twice the distance as the first, for the other leg.
If you are using lingerie elastic with a clear right and wrong side, check that the decorative edge is on the right (not left) when the elastic is facing up, as this is the position it will run through the sewing machine in. If the edging is on the left, transfer the pin marks to the other end of the elastic.
Pin the end of the elastic to one end of a leg hole, and the pin you used to make the mark to the other end. The elastic should be quite a bit shorter than the panty leg; if this isn't the case try remeasuring the elastic. You want to sew the seam with the elastic stretched out the length of the panty leg, but it's hard to start that way so sew a half inch or so without stretching just to get it started. You may need to pull on the thread tails to get the elastic and fabric to start running through the machine.
Stitch with a multi-step zigzag stitch if you have it, or a regular zigzag otherwise. Once you get going, sew in segments with the elastic stretched appropriately. Pull the whole piece out to the length of the leg hole with your left hand, then grab a point 6 or 7 inches out from the needle with your right. Now you can use your left hand to guide the fabric.
At the end of the leg hole, cut the thread and the elastic. Now sew the next piece of elastic the same for the other side.
Step 5: Waist Elastic
The waist elastic is done nearly the same as the leg elastic, but stitch one side seam first (serger or zigzag). Measure a piece of elastic by wrapping it around your waist or hips where the panty top will sit, at a comfortable tightness. Again just use a pin to mark the length instead of cutting it.
The sewing is just like the leg holes except that you'll need to pin one additional point. The rest of the panty prevents you from holding the waist out straight, so you can't just pull the elastic to see how stretched to make it. Pin both ends, then hold them both in one hand and find the middle of the panty waist and the elastic, and pin them together there. Note that this probably won't be very near the completed side seam, as the front of the panty is rather smaller than the back.
Step 6: Finishing
Sew the last side seam. Take the thread ends and fold them along the seam, then fold the seam to one side over the thread ends. Topstitch through the three layers (top and two seam allowances) just over the elastic bit, to hold it firmly and finish off the seam ends. Do this on both waist and leg elastic of the side you just sewed, and on the leg elastic of the other side (the waist elastic is unbroken on that side).
The last thing is to trim any edges that stick out past the elastic, being careful not to cut the elastic of course.
Once you've made a pair or two, you'll find that they go very quickly. You can make several pairs in an afternoon, they'll be completely unique and fit like they were made for you!