Think about what she would like. If you want it to be a surprise, obviously you can't ask her directly, but talk to her S.O. (if applicable), friends, your parents, etc.
Does she like surprises?? Some people don't. I hate them.
Dinner in a restaurant is a good idea. You could also do a cocktail hour or Sunday brunch. Many restaurants have catering packages and staff members who will consult with you. Some places have their catering packages listed online.
Let's say she's married... you could set up the surprise by having her husband take her out for a "romantic dinner for two", only they're shown into a back dining room where everyone is waiting to surprise her.
If you do decide to have it catered in someone's home, think about hiring a couple of people to serve and clean up. You want to enjoy the party, not run around with hors d'oeuvres!
Make a budget and stick to it.
As for gifts, it's a catch-22. If you don't say anything about gifts, people will assume they need to give them. But some people consider it tacky to mention gifts in an invitation, even to say "no gifts please".