How to Make It
Place beans in a medium bowl or saucepan; add cold water as needed to cover 2 inches above beans. Cover and refrigerate 8 hours or overnight. Drain.
Bring drained beans, 8 cups water, and 1 teaspoon of the turmeric to a boil in a large saucepan over high. Reduce heat to medium; simmer, stirring occasionally, until beans are tender but still hold their shape, 1 hour, 15 minutes to 1 hour, 30 minutes, stirring 2 teaspoons of the salt into bean mixture during final 30 minutes of cook time.
While beans cook, heat 3 tablespoons of the ghee in a large heavy-bottomed saucepan over medium until very fragrant, about 3 minutes. Add onion, 1/2 teaspoon of the salt, and (if using) black cardamom pod; stir to coat. Reduce heat to medium-low. Cook, stirring occasionally, until onion just begins to turn golden brown in spots, about 10 minutes. Reduce heat to low; add ginger, serrano chile, and remaining 1 tablespoon ghee. Cook, scraping bottom of pan to loosen browned bits, until onion is caramelized and crisped in spots, 10 to 14 minutes. Add garlic; cook, stirring often, until slightly softened, about 2 minutes.
Add 1/2 cup water to onion mixture, scraping bottom of pan to loosen browned bits. Cook over low, stirring occasionally, until water evaporates and onion starts to sizzle in remaining pan drippings, 5 to 15 minutes. Repeat process using additional 1/2 cup water.
Push onion mixture to 1 side of pan, and tilt pan so that any remaining drippings slide to empty side of pan. Add cumin seeds to drippings in empty side of pan. Cook over low, stirring just the cumin often, until cumin sizzles vigorously, about 1 minute. Add coriander, 1 tablespoon of the garam masala, and remaining 1 teaspoon turmeric to cumin; stir just the cumin mixture together. Stir cumin mixture into onion mixture. Add tomatoes, black pepper, and (if using) cayenne pepper. Cook, stirring often, until mixture is dry and slightly reduced, about 5 minutes. Remove from heat; set aside, uncovered, until beans are finished cooking.
Pour cooked bean mixture (do not drain beans) into onion mixture; add remaining 1 teaspoon garam masala. Bring to a simmer over medium. Reduce heat to medium-low. Simmer gently, stirring occasionally, until mixture has a stewlike consistency, about 15 minutes. Remove from heat; stir in cilantro, lemon juice, and remaining 1/4 teaspoon salt. Serve over warm rice, and add more ghee to taste.