Melt the butter in a small Dutch oven over medium-high heat. Saute the onion until translucent, 4 minutes. Add the garlic and saute until the onions are golden, 5 to 6 minutes.
Add the tomatoes with their juices, the sugar, thyme, mace and cayenne. Bring to a boil, cover, and simmer the soup until the tomatoes and onion are soft, about 15 minutes.
Let the soup sit 20 minutes, uncovered. Transfer it to a blender (or use an immersion blender) and reduce the mixture to a puree, either pulpy or completely smooth, as desired. Blend in the half-and-half. Season the soup to taste with salt and pepper.
Serve the soup hot, sprinkling one-fourth of the dill over each bowl, if using.