I would return None. If there is no result, why return something that looks like a result?
It is also easier to test:
result = getCity()
if result:
# do something
I would only return (None, None) if it were possible that only one of the two values is None (i.e. ('Boston', None)). It would be more consistent in this case.