In my family showers are always held in a private room at a restaurant or country club. We usually are given the choice of a limited menu or there is a buffet set up for our group and obviously the host picks up the bill for everyone. We have never had a problem bringing in cake but you will most likely need to purchase the meal from the restaurant.
If you are looking for a public venue on a tighter budget where you may be able to bring your own food, some options would be a community center, pavilion at a local park (depending on the weather), church fellowship halls, and community rooms at apartment/condo complexes or nursing homes.
What are your hosts' thoughts on all of this? The venue should really be determined by them.