Preheat oven to 400° F. Score the eggplants and place on a baking sheet.
Slice the tomato in half and place on the baking sheet, with the cut side facing up. Since juices may be released from the tomato during roasting, it’s best to separate it from the eggplant by forming a small “tray” with foil on the baking sheet, or place them in a smaller baking pan that can be place on the baking sheet.
Roast both the tomato and eggplants until the skin begins to peel away from the tomato, about 20 minutes. Remove the tomato and let cool. Return the eggplants to the oven.
Continue to roast the eggplants until they're soft and feel hollow when pressed, about 1 hour. Once soft, remove them from the oven and allow them to cool until they can be comfortably handled.
Melt the butter and add the olive oil to a pot over medium heat, that is large enough to make the entire soup recipe in. Add the chopped onions and sauté until soft and begin to brown. Add the garlic, mixed herbs, cumin, cayenne, salt and pepper. Cook for 1 - 2 minutes to mingle the flavors, until the herbs and spices are fragrant.
Peel the eggplant, squeezing out as much juice as possible. Remove any large clumps of seeds and coarsely chop. It’s fine to leave some of the seeds behind, but some eggplant will have large clusters of seeds that can contribute bitterness to the flavor. You should have approximately 3 cups of chopped eggplant. Add to the onion mixture in the pot.
Slide the peel from the roasted tomato and coarsely chop up. Add the chopped tomato and juices to the soup.
Add 2 cups of the broth and the balsamic vinegar. Stir well and cook for 5 minutes.
Puree the mixture in a blender, food processor or food mill. Return to the saucepan and add additional stock as needed to get the consistency you prefer.
Adjust for seasoning with salt, pepper and for acid with a squeeze of lemon.