I go through a lot of the potential variables you'll face in the headnotes above in terms of ingredients and cooking method. I prefer to make this salsa over a charcoal grill, but I'll offer other ways below.
If you are grilling, get your grates hot and scrape them clean. Place your onions and tomatoes cut side down on the grill. Place the chiles and garlic cloves on the grill, too. If you are broiling, arrange everything on a baking sheet, cut side up.
Let the onions and tomatoes grill a solid 5 minutes before trying to move them. You want significant blackening. Turn the garlic cloves as the peel blackens, and rotate the chiles so their skins blacken. Remove the garlic when several sides of the cloves have some char, when the skins of the chiles are well blackened, when both cut sides of the onion quarters are charred, and when the cut face of the tomatoes are well blackened. You will want to use a thin metal spatula to do this. If you are broiling, simply wait until you get good char on most of the vegetables.
Put the chiles into a plastic bag to steam. Chop the onion roughly. Peel the garlic and if the cloves are large, chop into a few pieces. Remove the skins from the tomatoes. After 10 minutes or so, peel the chiles with the back of a butter knife, then open them up and scrape away their seeds. Chop them roughly.
If you are grinding your salsa in a molcajete, add the salt, oregano and garlic and pound to a paste. Add the onion bit by bit, grinding and pounding all the way. Next comes the chiles, then the tomatoes. Finally, grind in the chopped herbs into the salsa. If you are not using a molcajete, simply put everything into a food processor and blitz it a few times. You want this salsa to have some texture. Add salt if you need it, and you are good to go.
NOTE: I also like to add tiny chiltepin or pequin chiles instead of the serranos. If you have those, simply grind them in with the salt and garlic.