These do appear to be contradictory guidelines until you understand what Google is trying to avoid here. Historically, SEOs have tried to rank businesses for geo-specific searches in areas other than where a business is located.
Let's say you run a gardening shop in Atlanta and you have an ecommerce side of the business online. Yes, you want to get walk-in traffic from the metro Atlanta area, but you also want to sell products online to customers all over the country. Ten years ago, you might set up 50 or so pages on your site with the exact same content with the city, state switched out. That way you could target keywords like the following:
- gardening supplies in Nashville, TN
- gardening supplies in Houston, TX
- gardening supplies in Seattle, WA
- gardening supplies in San Francisco, CA
- and so on...
That worked well 10 years ago, but the Panda update put a stop to that kind of nonsense. Google understands that someone searching for "gardening supplies in Nashville, TN" is looking for a brick and mortar location in Nashville and not an ecommerce store.
If you have locations in each of those cities, you have a legitimate reason to target the above search queries. On the other hand, you don't want to incur the wrath of Google with duplicate content on your landing pages. That's why the best solution is to create unique content that will appeal to users in that location. Yes, this requires time and possibly money to implement, but it's worth it when customers are streaming through the door at each location.
Check out Bright Local's recent InsideLocal Webinar: Powerful Content Creation Ideas for Local Businesses. They discussed several companies that are doing a great job with local landing page content.