Rip up the ancho chiles and put them in a dry frying pan over a medium–low heat. Tumble and toss them often, as they must not burn but rather toast, and no smoke should be seen coming from them or the frying pan is far too hot. They will change from a red colour to take on a more tobacco hue and their smell will give a rich, full, nutty headiness – really get your nose right down into them to check. All this will take about 5 attentive minutes. Take the frying pan off the heat, pour over the water and vinegar or lime juice and crumble in the chipotle chiles. Leave the chiles to soak for 30 minutes.
Preheat the oven to 150°C fan/170°C/Gas 3½. Melt the lard in a heavy flameproof casserole and in it fry the onions with the coriander stalks, spices and oregano over a medium heat, stirring occasionally, until the onion is golden and soft, adding the garlic for the last 2 minutes. Remove from the heat.
Cut the cores from the tomatoes and slash a criss-cross in the bottoms with a knife. Steep the tomatoes in just-boiled water and leave them there for a minute or so. Discard the water, peel the tomatoes and quarter. Take out the pulp and put it in a sieve over a blender. Use a spoon to push through the juice from the seeds, then chuck the seeds. Put the tomato flesh into the blender. Drop in the chipotle chiles and their soaking liquid. Blitz everything until totally smooth. Press the liquid through a clean sieve into a bowl, leaving behind only the finely ground chile skin. Pour the bowlful back into the blender and add the cooked onions and garlic along with the sugar and salt. Blitz again.
Put the beef in the casserole and pour over the chile purée. Stir well.
Cook in the oven for 2 hours until very soft and tender. Transfer the dish to the hob over a low heat and stir in the cocoa powder. Cook gently for a couple of minutes.
Stir in the soured cream and serve with Frijoles de la Olla, soft warmed corn tortillas and cold beer with fresh lime juice squeezed into it.