Preheat oven to 400ºF. Chop tops off of garlic heads, drizzle each with one tablespoon olive oil and wrap separately in foil. Place on middle rack and roast about 45 minutes, or until cloves in the center of the bulbs are golden-brown and soft. Set aside to cool.
Meanwhile, place potatoes in large stockpot and fill three-quarters of the way full with cool water. Salt water generously, cover and bring to boil. Cook potatoes until fork-tender, about 15 minutes. Drain potatoes and set aside.
In same stockpot, heat butter over medium and add onion. Cook about three minutes, until onion is tender. Now, squeeze all the roasted garlic from the bulbs, straight into the pot. Add wine, salt and pepper and stir to incorporate. Add chicken stock and potatoes and bring to a boil.
Now, use an immersion blender to smooth the soup. Or pour soup into a heat-safe blender and blend until soup has reached desired consistency.
Return soup to stockpot and add milk, saffron and a squeeze of lemon. Taste soup and add more salt and/or pepper if needed.
Now, fry the onions for the garnish: Heat oil in small saute pan over medium-high. When oil is hot, add onions. Stir occasionally, cooking until onions are golden brown, about five minutes. Transfer to paper-towel lined plate with slotted spoon.
Ladle soup into bowls and top with fried onions, cheese and parsley.