Although conventional perceived wisdom was "Select * is bad", I'm tending to switch my own opinion:
"Select * is usually ok".
There are times when "Select " is a very bad idea, but they don't happen that often. With a small amount of denormalisation of your database for performance reasons (e.g. putting big blobs in a separate table), then there is almost no case where "SELECT " won't be ok.
The big advantage of "SELECT *" is that it allows you to more usefully reuse code, than if you only select columns you need.
Finally, if you're often going to be selecting some common subset of columns from the same table / tables (perhaps with a join), creating a view might be a good idea, and will make your code simpler and more consistent.
But don't go overboard on this - specifically, views of views make an application confusing to maintain.
Mark