If you're using R or Python (or even C), you can have a look at the excellent igraph package. Especially, look at the various community detection algorithms that this package implements. What you discuss is closely related to the leading eigenvector algorithm of Newman (2006). Here is the paper introducing this algorithm, it is a very interesting read.
A good strategy is to implement several community detection algorithms and aggregate the results. This leads to algorithm-independent, more stable and significant results. Here is a link to a function that I wrote for that purpose. One "external measure" (as mentioned by P.-N. Mougel above) that you can use is the modularity.