I haven't read that particular book, but as to the concept ...
"One thing" does not mean "one line of code". "One thing" means that everything in the function should be logically related.
I'd quibble with some of the previous posters in saying that "saveSettings" is "one thing". Maybe it's just a carelessness with wording, but I'll take the opportunity to point out the potential trap. In your case, it's more like "saveCommunicationSettings", which I think easily fits the "one thing" definition. If you added "Settings.Default.customerLoyaltyDiscount= ..." to that list, I'd say you're probably on dangerous ground, because you're now mixing communications settings with pricing calculation settings.
In real life, deciding what is reasonable cohesion is not a formula but a judgement call that requires the exercise of intelligence. Should a function that calculates the total amount of an order include sales tax calculation? Arguably that's two things: total price of all items on order AND calculate sales taxes. But you could also argue that it's only one: find the total price of the order, whatever that involves. In practice I often make the decision based on the complexity of the logic. If all that's required to calculate an order total is a simple loop through all the items adding up their prices and then grab a sales tax rate from a table and multiply, I'd probably do it all in one function. If there's more to it than that -- like the system I'm working on these days, calculating pricing involves stock versus custom orders, looking up all sorts of possible discounts, adding in warranties, etc etc -- we really need to break it up.