Here's what I do....
Use the wonderful atagger plugin.
Create the new library fields required to run it.
I added one called "STYLES", which is a ; delimited list.
The site that atagger refers to throws most of my music into a general genre of ROCK.
Way too broad.
So, I leave the genre field blank when I import songs.
Then run atagger with the checkbox checked to update the genre and artist styles fields (among others).
So, atagger will suggest ROCK for the genre. I then look down at the STYLES field, which may have 3 or 4 thing listed. I then choose from those which one I think is the main one and manually fill that on in for the genre field, overwriting "rock".
I end up with the following main genres:
Alt Metal, Alternative, Blues, Classical, Country, Gothic Rock, Grunge, Indie Rock, Industrial Metal, Instrumentals, Metal, Pop, Post-Grunge, Progressive Rock, Punk Rock, Rap, Rapcore, Rock, Southern Rock, Swing, Thrash Metal.