Press tofu to remove excess water before using.Cut tofu into 2" x 2" squares and transfer to baking dish. Season with salt, paprika, turmeric, curry and cayenne, mixing well, and let marinate at room temperature while you prepare the other ingredients.
In a large saucepan, heat canola oil over medium-high. Stir in onions, and cook until translucent. Add veggies and garlic and continue to cook until carrot begin to soften. Add tofu, ensuring all spice mixture make it into the pot and let the flavours become acquainted, about 5 minutes, stirring once in a while, carefully so as not to break up the tofu too much.
Pour in the coconut milk and bring to a near boil. Let the coconut milk simmer for about 4 minutes to thicken a bit. Lower the heat to medium-low and add the vinegar and soy sauce. Stir in the water and bring to a near boil. Lower to a gentle simmer and cook, stirring occasionally, 10-15 minutes
Serve over rice or rice noodles, with diced cilantro and lime wedges.