I have a Citibank/American Airlines card that has this option. The interface to create the virtual card number is somewhat crappy (flash) but it works. This is probably available on other citibank cards as well.
"What I've done, of course, is total garbage." -- R. Willard, Pure Math 430a