It depends how much good content you can create.
If you can create great content, then having a single service per page might be the best approach. But the content needs to be unique enough across not only services, but your locations as well.
As far as looking for more guidance, read How do I build the perfectly optimized page? by Rand Fishkin - with your keywords being your location and service. Then read The 2013 Local Search Ranking Factors to figure out how to get your page to rank in the local results. And for fun you can take a look at The 2013 Local Search Ecosystems to get a complete understanding of how the different local directories interact with each other.
My best advice is to try it out... if it works, GREAT. If it doesn't, try something else. It is very rare that you will hit a homerun on the first try. So document your steps and processes and figure out what works for you. OR try different approaches on each of your locations and see what is working best and adopt the best practices to the other locations (if that makes sense).
Hope this helps.
Mike