In a large skillet, cook bacon over medium heat, turning frequently, until browned and crisp, 10 to 12 minutes. Transfer bacon to paper towels to drain. Once bacon has cooled, crumble.
Warm oil in a large pot over medium heat. Add onion, carrots and celery. Season with salt and pepper. Cook, stirring often, until vegetables have softened, approximately 5 minutes. Add potatoes and broth. Bring to a boil over high heat; reduce heat to medium-low and simmer. Cook until potatoes are tender, about 12 minutes. Using an immersion blender, puree soup until smooth.
Over medium heat, whisk milk and cream cheese into soup, stirring constantly until cream cheese has fully melted, about 4 minutes. Season with salt and pepper, if desired. Divide among 4 bowls, then top with bacon.