The short answer is yes, you should have one page of your site set-up for each location that you’re targeting. Some companies prefer to have a subdomain for location (ie: location.domain.com), the problem with this approach is that that a sub-domain is technically viewed as a separate domain, so it won’t really benefit from the trust and authority built up in the main domain.
If you don’t have either a dedicated page or a sub-domain for a target location, then there’s almost no hope of ranking for it. That said, it would be better to have a landing page under the main domain. It is tempting to use the same content across the location specific landing pages, but in fact each landing page needs original content, that is relevant to that specific location.