What is the generally accepted method and tools for profiling MySQL queries?
The first tool is the EXPLAIN that reports the query execution plan supposed by SQL engine. That plan contains the sequence of subselects, available and chosen indices for each, the number of rows selected in each subselect, as well as mechanism chosen to perform each subselect.

Also mysql have a nice profiling tool that can help to localize the problem:

SET profiling=1;
SELECT . . . . . 
SHOW PROFILE;
SET profiling=0;