My cousin has a print shop here in Ohio and She does business cards all the time. In fact when I was in her shop last week, she had just done a card for a woman Realtor who wanted the picture to include her dog! Any printer can do this for you. Your chance of a better deal would be an "mom and pop" printer, or you could find one on line.
I use a program called PrintMaster. It has greeting cards, business cards, calendars, letterheads, and some other stuff I can't think of right now. I buy the business cards in sheets from an office supply store and print my own using my own product's pictures. I also don't have to buy 500 of the things, so I can switch pictures, phone numbers, whatever I need to with out much trouble.
I can't tell you how many old business cards were useless because we moved, phone company decides to change area codes, changed cell numbers, etc. That's why I print my own now, it's been cheaper for me in the long run. Who wants all that waste?
I too use Vista print. I was able to upload a photo to put on it and on the back have a slogan of my choice. It costs a bit more for the customizing but I felt it was still very reasonable and was well satisfied with the end result