Someone should also mention that 'public domain' != free to use. Many countries don't recognize the public domain which means that many projects wont touch code in it. They would much rather have BSD or GPL code.
What I'm trying to say is that public domain has issues within the international realm. With something like the BSD license you declare very explicitly what you allow and I believe (if I understand correctly, I am not a lawyer) according to the Berne Convention that those explicit declarations work in an international realm.
So if your product is never going to be used/sold/shipped out side of USA, England, and a few other countries Public Domain is alright. Otherwise you need to use something like Creative Commons Zero License or a BSD/MIT License.
The Berne Convention is much too old to specifically address the bare licenses used for open-source software. However one of the provisions of the convention is that any creative work is protected under copyright law without requiring explicit registration. This creates a problem for declaring something in the public domain since there is not really an established legal procedure for a copyright owner to waive or forfeit the exclusive rights which have been automatically granted to them.