Heat ghee in a skillet over medium heat. Add onion; cook and stir until soft and translucent, 5 to 7 minutes. Transfer to a blender. Add tomatoes, water, ginger, and garlic; puree sauce until smooth.
Transfer sauce to a saucepan over medium heat. Add lamb, salt, paprika, turmeric, coriander, cumin, and cayenne pepper. Reduce heat to medium-low; simmer until tender and easily pulled apart with a fork, about 30 minutes.
Place serrano peppers in a small food processor; grind with 1 tablespoon water until a paste forms. Add to the lamb; continue simmering until flavors combine, about 5 minutes. Mix in cilantro and garam masala.