I think the more we talk about it, the more we have to gain. It only hurts bad employers.
But if it wasn't for a few friends sharing how much they charge for consulting I would never have known it was possible to charge $250/hr (and much more). I would have been stuck charging multiples of the hourly rates I had heard about (Maybe I would have doubled the highest hourly rate I had heard at the time, which was $20 an hour).
When my friends and I got jobs after going to college, we disclosed how much we were getting as far as offers go. Of course, we were going across the country, and the rates in Atlanta is not the same as New York or San Fran or Seattle. But we also had the same job during college, and knew how much each other made because of that (fixed pay scale for interns).
As a counter to this, my co-workers and I were buying a retirement gift for another co-worker. We had in mind what we were going to get, but on sudden impulse in the store we decided to upgrade the item. It was mentioned that what we had budgeted wouldn't cover the new item, and a co-worker said "it's OK, the boss [also part of this purchase] can handle it, he drives a Mercedes." It's comments like these that make it awkward to share salary information. Outward displays of wealth have no bearing on income, that's simply what they choose to spend their money (or debt) on.