It can be a dinner or even a barbeque.
Often, as my wife and I did, you can start with another form of party (we used a Christmas party), and then use it as an opportunity to announce your engagement.
However, you should let the host know in advance if this is what you plan to do.
If your parents live in different cities (or if you live in different cities), there's no rule against having two parties for each set of friends and family.
Just do whatever the guests will enjoy.
Who hosts: Historically, the bride's parents are responsible for the engagement party, but that tradition is waning.
Whoever wishes may host the party, though it usually won't be the couple themselves.
After all, people are throwing this party for you.
If the bride's parents wish to host, don't snatch it from them.
In general, it's good to let people follow traditions if they wish, but not force them if they don't.
Announcing the engagement: Even if everyone already knows about the engagement, it should still be formally announced at the party (after all, that's the point).
There are two traditions here: either the father of the bride or the host of announce the engagement (the reason for the two traditions is that the bride's father used to always be the host).
Just do whichever you think will make people happiest and will cause the least hurt feelings.
Who comes: If it is an official engagement party, you shouldn't invite anyone that you also don't plan to invite to the wedding.
If you use another party to provide a surprise announcement, this is more flexible, but be aware that some people may be hurt if they come to even a surprise party and then find themselves not invited to the wedding.
You should really only surprise people at parties attended by close friends you intend to invite to your wedding.
One simple trick is to tailor your guest list using people you wish to come to your wedding, then pretend the party is for something else entirely.
Gifts: Gift etiquette at an engagement party are a bit of a mess.
On the one hand, you should never include gift information in any invitation (including "no gifts").
On the other hand, there is no set rule about gifts at engagement parties, so no one knows what to do.
After you send out your invitations, use the grapevine to let people know if you would like gifts or not, and make sure everyone who is invited knows.
Only open gifts at the party only if you have let it known that you wish them, but you are not obliged to.
If you request no gifts and people bring them anyway, don't open them at the party.
Opening gifts when not everyone has brought gifts makes people uncomfortable.