Blend onion, garlic, and ginger until fine. Add 2 tablespoons of water if necessary to get the blender going. Transfer blended ingredients to a bowl. Add ground coriander, cumin, and turmeric. Mix well to form a paste.
Separate the Chinese celery stalks from the leaves. Cut the stalks crosswise into ¼ inch thick slices. Cut the leaves into strips.
Heat vegetable oil in a cast iron pot. Add cinnamon, star anise, cardamom and fry for 30 seconds. Add spice paste and stir fry for 3 minutes.
Add Chinese celery, carrots, and mutton/lamb. Stir fry for another 3 minutes.
Pour in 10 cups (2.4 liters) of water. Add mutton/lamb bone and crushed peppercorns. Cover and bring soup to a boil. Reduce heat and simmer for 1 hour 40 minutes.
Skim off as much of the fat as possible.
Add tomatoes and potatoes. Continue to simmer for 20 minutes.
Add celery leaves and season with salt. Turn off stove.
Serve warm garnished with fried shallots and cilantro.