To make the soup, cook leek, onions, and carrots in a large pot with butter and olive oil until the vegetables are slightly caramelized, about 10 minutes.
Add chicken stock, thyme, parsley, and bay leaf to the pot, and bring to a boil. Cover the pot with a lid and simmer for 45 minutes or until the vegetables are softened. Discard the thyme and bay leaf.
In a blender, puree the vegetables and stock until smooth. Add water if necessary to achieve desired consistency. Season with salt and pepper to taste.
To make the meatballs, combine all of the ingredients in a large mixing bowl until well blended (do not overmix) and roll into 1-inch balls.
Heat olive oil in a nonstick skillet and cook meatballs until browned. Drain excess grease on paper towel.
To serve, transfer the meatballs and the pureed soup back into the pot. Bring to a boil and serve hot.