Heat the oil in a Dutch oven or large, heavy pot over medium-high heat. Sprinkle the pork generously with salt and pepper and add it to the pan. Brown the meat on all sides, adding onion and garlic about halfway through. When meat is brown, add 2 cups of water and cook, covered, about 1 1/2 hours, until the meat is very tender.
Preheat oven to 350 degrees.
Remove the pork from the pan and set aside. Degrease broth as best you can and add it, along with the garlic and onions, to a blender. Add the chiles and cilantro and puree until smooth.
Add the pureed broth mixture and cook over medium high heat, stirring constantly, until slightly thickened, about 3 minutes. Add the sour cream and salt and pepper to taste. Cook a few more minutes then remove from the heat.
Place several tablespoons of the sauce on the bottom of an oiled baking dish, about 13 x 9 inches. Arrange the pork on top of the sauce and pour remaining sauce over the top. Sprinkle with cheese. Bake until top is lightly browned and serve hot, with seasoned white rice or tortillas.