What is the difference between licensing a program under the MIT license (or the BSD one) and putting it in the public domain?
The MIT license does place some requirements on the consumer of the code, such as
"The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software."
If you put code into the public domain, there are no requirements on the code's consumer at all.
Public domain is not represented very well internationally (it doesn't exist in many countries outside the US), and as such you should always place a license on your code.
The main point is that the BSD license allows the authors to retain copyright to their work, and to ensure they receive due credit as authors in the source code, by requiring attribution as part of the license notice. If you put work into the public domain, you explicitly give up all rights to its reproduction or use, including attribution.
There is some useful clarification of the differences between the two situations on the Net-BSD site.