Heat the olive oil in a large pot over medium heat. When the oil is shimmering, add the onion and sliced leeks and cook, stirring occasionally, until starting to turn translucent, about 5 minutes. Add the garlic and cook, stirring occasionally, until the onions and leeks are softened and completely translucent, about 15 minutes.
Add the sunchokes, potatoes, and broth and stir to get the onions off the bottom of the pot. Add the lemon juice, rosemary, thyme, dark green leek tops, 2 tablespoons salt, and 1/2 teaspoon pepper and bring to a boil. Reduce the heat to medium and simmer until the potatoes and sun chokes are easily pierced with a fork, about 15 minutes. Let cool slightly, then discard the rosemary sprig and leek tops.
Set aside about 2 cups of the soup. Working in batches, transfer the rest of the soup to a blender and blend until very smooth. Return the pureed soup, along with the reserved soup, to the pot. Whisk in the milk, season to taste with salt, and bring to a simmer over medium-low heat.
Ladle the soup into bowls, drizzle with the rosemary oil, and serve.