Does anyone know a good algorithm to perform clustering on both discrete and continuous attributes? I am working on a problem of identifying a group of similar customers and each customer has both discrete and continuous attributes (Think type of customers, amount of revenue generated by this customer, geographic location and etc..)

Traditionally algorithms like K-means or EM work for continuous attributes, what if we have a mix of continuous and discrete attributes?