Clustering a set of images using keypoint descriptors
I don't know how to do it that way.  I would suggest you do it a different way:


Define a distance metric that measures the dissimilarity between two metrics.  In particular, if $I,J$ are two images, $d(I,J)$ should quantify how dissimilar $I,J$ are -- large values indicate they are very different, small values indicate they are very similar.
Use a different clustering algorithm that only needs a distance metric.


For #1, there are many ways of measuring/computing image similarity.  If you want to use SIFT as your starting point, you can align the two images and compute some metric based upon the number of keypoints that are well-matched ("inliers") vs the number that aren't ("outliers).

For #2, there are many options.  One option is to use hierarchical clustering.

I recommend you spend some time reading through the research literature on measuring image similarity in the computer vision literature.  There's lots of work, and many methods proposed and evaluated.

See also https://stackoverflow.com/q/843972/781723 and https://stackoverflow.com/q/4196453/781723.  You could also use the TinEye API.