To prepare the tofu:
Mix all the ingredients except the tofu. Now slather the marinade on the slices of tofu you've prepared and set aside for about half an hour.
Smear the oil evenly in a nonstick or cast-iron griddle. When it's hot, place the slices of tofu in the pan without crowding them. Cook until golden-brown on each side, about four minutes per side. Remove to a plate and, when cool, cut into ¾-inch cubes. Set aside.
To make the Makhani curry:
Heat the oil in a saucepan. Add the cumin seeds, and when they sputter add cardamom, cloves, peppercorns and cinnamon. Saute for a minute over medium-high heat.
Add the onions and a little salt and saute until the onions start to brown, about five minutes. Add ginger and garlic pastes, kasoori methi, and cashew nuts and saute for another minute.
Add the tomatoes and tomato paste, powdered coriander, turmeric, and chilli powder.
Saute the mixture until the tomatoes turn really soft and melt into the saucepan. If the mixture starts to get too dry before the tomatoes are done, add some water or vegetable stock and continue cooking.
Once the tomatoes are really soft, turn off the heat and let the mixture cool. Pour into a blender and add a cup of vegetable stock. Blend to a smooth paste. (Don't blend the mixture while it's still hot because it can be dangerous. If you have a hand blender, this is the time to use it.)
Pour the blended paste back into the saucepan, turn on the heat, add the remaining vegetable stock if the mixture is thick, and bring to a simmer. Now add the tofu cubes and stir them in. Add salt to taste. Let the mixture simmer for about 10 minutes.
Add the vegan butter and turn off the heat. Stir to melt the butter into the sauce.
Add the lemon juice and maple syrup, mix well, garnish with coriander leaves, and serve hot with some boiled rice or naan.