It is considered a "best practices" sort of thing not to allow SELECT * in production SQL code. It is better to specify exactly which columns you need. The fewer columns you ask for, the less overhead you incur. This becomes an issue when optimizing a high-volume site.
This is also helpful when debugging... if you request a column that was changed or deleted using an ALTER TABLE, you'll get a much more meaningful message back from your SQL server if you requested that field by name.
The exception to this rule is when you SELECT COUNT(). You may get deceptive results if you try to specify a column instead of the , because NULL values in that column won't be (or shouldn't be) counted. (If I remember correctly from the SQL standard.) When you SELECT COUNT(*) you are guaranteed to get the number of rows in the table, null or no.