That question has been quite a subject of discussion on this forum.
Start reading here - there are other related threads as well: