Howdy,
We have heard about building microsites on sub-domains example city.domainname.com/keyword-or-service
I think this was more relevant when you were wanting to get an EMD, but I think that this is now less important.
We have heard about building sections off the root domain such as domainname.com/city/keyword-or-service
We have used this and had success with it. If you look at Yelp, this is what they do as well. I think you can also consolidate your SEO reputation more effectively. I think the advantage to the subdomain or separate domain approach is that if you get penalized on one, it should not impact the other. If you keep to white hat approaches this should not be an issue.
We have heard about just pushing more content to the blog which can target a wider range of keywords and cities
If you setup the two options above, you can have a wide diversity of keywords and cities. Don't see how a blog makes it any different in being able to target more keywords. You can hang a blog off of a folder ie. domainname.com/city/blog and you can get the same effect.
We have heard about building a new site for each city location replicating the main website and swapping out content for 100% originality
The issue with this becomes scale what if you need a large number of cities covered, can you get all the domain names. What if you have a user that wants to look in more than one city? Just does not scale, especially if you want to build your main brand. Also, when you consider all the different GA and GWT etc etc accounts you would need to setup to manage, it adds a lot of overhead.
We have heard about just building more and more backlinks with different anchor text using the cities in the anchor text
This is something you would have to do regardless of all of the above techniques. You want backlinks to any page/site/etc with the city in the anchor text but with also a diversity of anchor text.
##########
Bottom line, you need to consider your brand on all of this. People go to yelp as they are a trusted source and then they rank well with local cities around the US. Same thing with places like Angies list. Citysearch uses the subdomain, but that is more of a legacy thing, seems like most newer sites use the a single TLD and then build out locations in different folders. Brand is what will make you different than all the other companies that sell the same products so IMHO the use of the single domain lets you build on that.