Peel and chop the potatoes. Cover with the water in a large soup pot or Dutch oven. Boil until just tender.
While the potatoes are boiling, prep the other vegetables – peel & chop the carrots, chop the celery, slice the cabbage into thin strips & cut into smaller pieces, and dice the onions.
Once the potatoes are cooked, remove from pot with slotted spoon (do not discard the water). Mash together with 2 tbsp butter and 1/3 of the canned tomatoes.
Turn the heat on the pot up to medium-high. Add the carrots, celery, peas, 1/2 the onions, 1/2 the cabbage, 1/2 the potato/tomato mixture, and 1/2 of the remaining tomatoes to the pot. Bring to a boil and allow to simmer.
Heat a skillet over medium heat. Melt 2 tbsp of butter then add the remaining onions. Cook for approximately 5 minutes until translucent (do not brown them). Add the remaining potato/tomato mixture and tomatoes. Cook another 5 min then add to the pot.
Heat the remaining 2 tbsp of butter in the skillet, and add the remaining half of the cabbage. Cook until soft, but do not brown, approximately 10 min. Add to the pot.
Add fresh dill to the soup, season with salt & pepper to taste. Allow to simmer for 5 more minutes. Ladle into bowls. Serve with a dollop of sour cream or drizzle of heavy cream if desired. Enjoy!