If it’s a movie made in a foreign country, subtitles, all the way. (With the exception of Godzilla or other kaiju flicks - dubbing’s fine, there, although I’ll usually set subtitles if watching a DVD where it’s an option.) If it’s made in an English speaking country, it’s OK if it’s in English, even if it’s set in a non-English speaking country - I’m perfectly capable of intuiting that what we’re seeing isn’t in English for the characters. (In fact, it could be argued that this is the preferable way to do it. I’m not going to argue the point one way or the other, except that it’s not ‘wrong’.)
However, if the majority of the characters are English speakers speaking English for the majority of the movie, the local language should be used by the actors, and subtitled when it’s being used by the characters, just like if it was set in an English speaking country, and the non-English speakers were the visitors.
If the majority of the characters are speaking the local language, and there are a handful of English speakers…then we have a problem that there’s no optimal solution for. Probably the best way to do it would be to treat it like it’s a foreign film, and use the local language, subtitled, for the majority of the film.