Identify buying patterns of customers for marketing purposes.

Data mining is a common practice used to help identify buying patterns of customers for marketing purposes. More recently though some companies have started gathering non-purchasing information in order to create profiles of people to sell to retailers. Do you think this practice is ethical? Should it be legal?