The "gift certificate module" that I used have an ablity to specify who (by email) can use the gift certificate (and also who it is from). Visitor will have ability to buy the "gift certificate". Also it seemed to only allow the certificate to be used *once*.
Coupon have more flexiblity - and you can also define your own "coupon code", specify products to be used, number of times used (or unlimited), etc...
