There are many clustering algorithms and you would not know the best one in advance. K-means clustering is a popular one but not necessarily to be the best. I suggest you check this article http://www.cc.gatech.edu/~isbell/reading/papers/berkhin02survey.pdf
There are many clustering algorithms that are available for analyzing drug data sets with high dimensionality. The quality of these algorithms relies on the nature of data sets and the accuracy needed by the application. I think K-Means, bisecting K-Means and Ward clustering algorithms are the most popular clustering algorithms for your purpose.
It depens on your dataset's charesteristics. You can utilize K-means clustering algorithm. But please remember that the selected value of K affects the performance of algorithm.
you should first set the goals of clustering: do you need a hierarchical clustering or a non-hierarchical one. Then, as said in some answers, you can select one clustering algorithm such as K-means if you opt for a non-hierarchical clustering. You'll need to set the number of clusters (K) beforehand, using for instance the rule of thumb (square root of N/2), then you run K-means using a selected tool (e.g. Weka). However, the most important aspect is the evaluation of you clusters. If the obtained clusters are not useful to your business, you can either change K until you're satisfied, or you can change the algorithm itself.