Drain the tofu and lightly press it with your hands in paper towels to remove any excess water. Set aside.
Place the cashews in a measuring cup or bowl and cover with 3/4 cup warm water. Set aside.
Dice the onion and mince the garlic.
Cut the tofu into 1-inch cubes. Place a large skillet over medium-high heat. Add 1 tablespoon of oil to the pan. Sear the tofu cubes, stirring often, until all sides are golden brown. Remove the cooked tofu to paper towels to drain.
In the same pan, add another tablespoon of oil. Add the onions and sauté for 5 to 7 minutes until the onions are soft. Add the garlic, cumin, coriander, cardamom, ginger, turmeric, and cayenne. Continue to cook until the garlic is fragrant and the spices are toasted, approximately 1 to 2 minutes. Turn off the heat.
Drain the cashews and place them in a food processor. Add the onion and spice mixture, the tomato paste, the remaining water or broth, and the lime juice. Season with a pinch each of salt and pepper. Process into a smooth paste, scraping down the sides of the processor bowl.
Turn the heat under the skillet to medium-high. Place the spice paste in the skillet. Whisk in the coconut milk, solids and liquid. Bring this to a boil. Turn the heat down so the sauce is simmering. Add the tofu cubes into the sauce and simmer, stirring often, until the sauce has thickened, approximately 12 minutes. It should be creamy, not soupy. Season the korma with salt and pepper to taste.
Serve the tofu korma with basmati rice. Top with fresh cilantro leaves and toasted cashews.