To make the tomatoes (if using): preheat the oven to 400F. Line a baking sheet with parchment paper (or just use an oven-proof skillet). Add the tomatoes and toss them in the oil and salt. Bake for 10-15 minutes, or until the tomatoes have all burst open.
In a large pot over medium heat, add the oil and garlic and cook, stirring occasionally, for about 1-2 minutes or until the garlic is fragrant (don’t let it burn).
Add the broccoli, kale, parsley, fennel, red pepper flakes (if using), and ½ teaspoon salt. Stir around and let cook for 1 more minute, stirring frequently. Pour in 4 cups water and ½ teaspoon more salt. Cover the pot, bring to a boil, then let it simmer for 3-5 minutes, or until broccoli and kale are tender. Transfer everything to a blender (or use an immersion blender) and blend just for a few seconds until a beautiful green liquid forms.
Pour back into the pot along with the pasta, remaining 3 cups water, and remaining ½ teaspoon salt. Give it a stir, bring to a boil, then reduce the heat to medium/medium-low to maintain a rapid simmer for 15 minutes (uncovered), or until pasta is cooked through and sauce has reduced, stirring the pasta every few minutes to make sure it isn’t sticking to the bottom of the pot. Towards the end when the liquid has reduced a lot, you’ll want to stir it more frequently to make sure it’s not sticking.
Turn off the heat and stir in the parmesan, butter, and lemon. Serve topped with the tomatoes (if using), more parmesan, and black pepper.