Bring chicken, water, 2 onion quarters, and 1 teaspoon salt to a boil, covered, in a 4 to 5-quart pot over moderately high heat. Boil 10 minutes, then remove from heat and let stand, covered, until chicken is just cooked through, about 10 minutes. Transfer chicken to a plate, reserving broth with onion. When cool enough to handle, coarsely shred chicken, discarding skin and bones.
While chicken is cooking, heat a dry well-seasoned small cast iron skillet over moderate heat until hot, then brown garlic and remaining 2 onion quarters on all sides, turning with tongs, about 5 minutes. Peel garlic and transfer with onion to a blender. Add tomatoes with juice, chiles, and oregano, then puree until smooth.
Cook chorizo in oil in a 12-inch heavy skillet over moderately high heat, stirring, until fat is rendered, about 2 minutes. Carefully add puree (it will splatter and steam) and cook, stirring frequently, until thick, about 10 minutes.
Peel potatoes and cut into 3/4-inch pieces, then add to reserved broth with remaining teaspoon salt. Simmer, covered, stirring occasionally, until potatoes are almost tender, about 10 minutes.
Add potatoes and onions to chorizo mixture along with 2 cups broth (save remainder for another use). Stir in chicken and simmer 10 minutes. Serve sprinkled with cheese.
Garnish with avocado slices and warm corn tortillas, if desired.