Citibank has it (Virtual Numbers). I used it today, as a matter of fact. It’s awesome. You can make cards that last from 2 months up to a year, and give it a credit limit (which can be changed at any time). You can have multiple cards going at a time. I started using the service in earnest after buying something from a website, and then found a fraudulent charge shortly after. I still use the site (they sell special office supplies at excellent prices), but never with my “real” credit cards.
It’s great for services like iTunes. Set a card up with a credit limit for $100, and make it last for a year. If I need more $$$, I can increase the limit. Once Apple (or whoever) charges the card, only they can charge it again; this is good because if a legit business with a bad employee gets the number, he/she won’t be able to use it anywhere else. The one possible downside is that they can probably use the number to buy goods from their employer, so that’s why I keep the credit limit as close to the actual cost of the good that I’m buying.