I usually find out what restaurants the recipient likes and call the restaurant directly. Most restaurants offer gift certificates or cards now and they will take the order over the phone. Some restaurants have websites where you an order. Also, if you have a membership to Costco, they have discounted gift cards to a few places.
For NYC, I love giving Daniel Boulud gift cards because they can be used at any of the Boulud restaurants. It's one of my parents' favorites. You can order those online.
For people I don't know especially well, giftcertificates.com works great but it is a bit impersonal. You can buy a denomination "super certificate" and the recipient can transfer the funds to any gift card on the site, not just restaurants. You can also buy a specific gift card but the restaurants offered are chains like Olive Garden or the Palm.