I know a lot of people probably make them on line. Since I've done scrapbooking, I buy cardstock and envelopes from Michaels and make my own with photos I take. I like to do that with my photography, putting together several cards as notecard gifts for people too.
This time around I made valentine photo cards with Walmart 1-hr photo. You can submit your order online and then choose to either pick it up in store at the 1hr photo center, or have them shipped to you.
Walgreens also has the same type of thing, and then there are lots of online only places like seehere.com, shutterfly, snapfish, tinyprints, etc. Some let you only order 1 card per design if you want, and others are better for Christmas cards where you may have to order 10+ of a single design.
The Walmart cards I made for our Valentine buddies were 44 cents each.