1. Preheat broiler with rack set about 4 inches from the heat. Cover a baking sheet with foil. Place tomatoes on foil and broil for 6 minutes, until blackened in spots or all over. Using tongs, flip over and broil for another 4 to 6 minutes. The tomatoes should be charred and cooked through. Remove from oven and place into a bowl with juices.
2. Allow to cool until you can handle them, then core and discard skins. Purée, along with juices in the bowl, in a blender or a food processor.
3. Meanwhile, bring a large pot of water to a boil while you stem and wash the chard. When water comes to a boil, add salt and chard. Blanch for 1 minute and transfer to a bowl of cold water. Drain and squeeze out excess water. Cut in 1/4-inch wide strips and set aside.
4. Heat oil in a large, heavy skillet over medium heat and add onion. Cook, stirring, until tender and beginning to color, 5 to 8 minutes. Add a generous pinch of salt, the garlic, cumin and chili powder and cook, stirring, until garlic is fragrant, about 30 seconds. Add puréed tomatoes, which should sizzle as soon as they hit the pan. Cook, stirring often, until purée thickens and leaves a canal when you run your spoon down the middle, about 5 minutes. Season to taste with salt.
5. Add minced chiles and tofu. Mash tofu into the tomatoes using the back of your spoon. Add Swiss chard and salt to taste, and continue to cook for another 5 minutes, stirring and mashing tofu. Stir in cilantro. Taste and adjust seasonings.Heat tortillas and top with tofu mix. Serve with salsa on the side if desired.