This has the potential to be an interesting question. Clustering algorithms perform 'well' or 'not-well' depending ofon the topology of your data and what you are looking for in that data. ¿What do you want the clusters to represent? I attach a diagram which sadly does not include kernel k-means or SOM but I think it is of great value for understanding the grave differences between the techniques. You probably need to ask and respond this to yourself before you dig in to measuring the "pros" and "cons".
This is the source of the image.