Put whole chicken, sliced onion, whole garlic clove, and 1 tablespoon salt in a pot with enough water to cover and bring to a boil. Reduce heat, cover, and simmer until chicken is done, about 30 minutes (it will be cooked more later). Remove from pot and let cool; reserve broth. Remove meat from bones and shred.
In a large saucepan melt butter over low heat. Add all remaining ingredients except for tomato sauce and salt, and sauté until soft, about 10 minutes. Stir in shredded chicken and sauté briefly. Add tomato sauce and 1/2 cup reserved broth. Taste before adding salt.
Roast chiles over an open flame until blackened. Let cool to the touch, then (wearing rubber gloves) rinse under running water to remove skin. Seed and devein chiles and tear into several pieces. Place in a blender with 1 cup water, 1/4 cup cheese, 1 tablespoon olive oil, 1 tablespoon sour cream, and the flour tortillas and purée until smooth. Add water if necessary; sauce should be moderately thick and pourable.
Heat a small amount of olive oil in a sauté pan over medium-high heat. Add the sauce and salt, reduce heat to low, and simmer, lightly bubbling, for 5 minutes.
To serve, heat a small amount of oil in a skillet or sauté pan. Quickly fry corn tortillas for 2 seconds on each side. Fill with chicken and roll up. Place enchiladas on plates, seam side down. Pour sauce on top, sprinkle with remaining cheese, and garnish with dollops of remaining sour cream.Makes 8 to 10 enchiladas Source: