At their core, unions exist to protect employees from the capriciousness of employers. Unions are the reason why the 5 day/40 hour work week exists, why we have anti-child labour laws, why we have many workplace safety laws etc. The labour movement created the middle class and ended the "gilded age" (to a degree). The degradation of unions is one of the main reasons why income inequality is exploding.
Individual unions may be bad (I've been in two that did virtually nothing "directly" for me, one that was amazing) and they CAN allow for poor workers to be protected (though, they don't always) but what they have done for the working class is undeniable.
For the record: I'm not currently in a union, and haven't been for almost 2 decades. My field really doesn't do "unions" 'cause my field is full of selfish John Galt types, but if an I.T. union ever formed, I'd be right in there.
And to avoid creating a second long-winded reply, I'll agree with Bobthe4th that strikes shouldn't be allowed for (some) public services. Unions are more than strikes though, collective bargaining is, historically, an important way to level the playing field for the workers.