Add oil to a 4-quart saucepot and place over medium heat. Add onion, celery, carrot, and rosemary, and cook until onion begins to brown, stirring occasionally, about 15 minutes.
Add squash, stock, and 1 cup water. Bring to a boil, then reduce to a simmer and cook until squash is tender, about 15 minutes. Turn off heat and let soup cool slightly, about 8 minutes.
Using a standard or immersion blender, puree soup until smooth. If using a standard blender, puree in small batches to prevent spillage. Transfer to a clean pot or storage container. Soup can be refrigerated for up to 2 days or frozen for up to 2 months.
When ready to serve, reheat. Add milk, salt, and pepper; stir well. Add additional milk or stock if soup is too thick; simmer 5 minutes. Adjust seasoning to taste, and serve warm.