Bring ~5 cups (1.2 L) of water to a boil.
Soak the tofu: Use your hands to tear the tofu into chunks, roughly 1 ½” (3.5 to 4 cm) pieces, then add to a large bowl. In a large measuring cup or bowl, combine 4 cups (960 mL) boiling water and 2 tablespoons (19g) kosher salt. Stir to dissolve, then pour the hot saltwater over the tofu. Cover and soak for 10 minutes, then gently drain. Spread the tofu out across a large dish towel and dry off while you continue prepping.
Add the cashews to a small bowl and pour on boiling water to cover. Soak while you prep everything else (at least 15 min), then tip out the soaking water.
Toast the whole spices: Heat a large frying pan over medium heat until hot. Add the cinnamon stick, bay leaves, cloves, cardamom seeds, and coriander seeds. Stir frequently for 2 minutes, then add the cumin seeds. Toast for 60 to 90 seconds, or until very fragrant. Transfer to a bowl to cool.
Cook the aromatics: Return the frying pan to medium heat and add 3 tablespoons of oil. Once shimmering, add the onions with a pinch of salt. Stir occasionally until deeply browned, 12 to 15 minutes. Add in the garlic and ginger. Stir frequently for 90 seconds to 2 minutes, adding a splash of water if it sticks. Remove from the heat.
Blend the marinade: Pour ½ cup (120 mL) water into a high-powered blender. Then add in the sautéed onion mixture, drained cashews, yogurt, 1 ½ teaspoons kosher salt, black pepper, cornstarch, turmeric, and chili powder. Tear the bay leaves and cinnamon sticks into small pieces and add to the blender along with the other toasted whole spices. Start blending on low, then increase to high and blend until as smooth as possible.
Gently pat dry the tofu with a clean towel. Pour the marinade into the large bowl, then add the tofu and use a silicone spatula to gently toss until tofu is well coated. Cover and refrigerate for at least 1 hour, or up to 24 hours for best flavor.
Cook the tofu: Heat a large nonstick frying pan over medium heat with 2 teaspoons of oil. After 2 minutes, add HALF of the marinated tofu. Cook undisturbed for 5 minutes or until the bottom starts to develop a golden brown crust. Flip and cook for 4 minutes, or until most sides of the tofu are golden brown. Transfer tofu to a plate and wipe out the pan. Repeat with the remaining tofu.
Return the first batch of tofu to the frying pan. Pour in the soy milk, a pinch or two of salt, and a few twists of pepper. Crush the dried fenugreek leaves with your hands and add to the pan. Simmer for 3 to 4 minutes, or until saucy and thick. Remove from the heat and garnish with cilantro. Season with salt to taste. Allow to cool for a few minutes, then serve with flatbread or rice.
