In a large Dutch oven or heavy-bottomed pot, melt the unsalted butter over medium heat. Add the finely chopped onion and cook, stirring occasionally, for about 5-7 minutes until the onion is softened and translucent.
Add the minced garlic to the pot and cook for 1 minute more, stirring constantly, until the garlic is fragrant.
Add the cubed potatoes, chicken broth, kosher salt, black pepper, dried thyme, and dried rosemary to the pot. Increase the heat to high and bring the mixture to a boil.
Once boiling, immediately reduce the heat to low, cover the pot, and let the soup simmer gently for 15-20 minutes, or until the potatoes are very tender and easily pierced with a fork.
Use a potato masher to carefully mash the potatoes directly in the pot until the soup reaches your desired consistency, leaving some chunks for a rustic texture.
Stir in the whole milk and heavy cream, then heat the soup over low heat for 3-5 minutes until warmed through. Do not allow the soup to boil after adding the dairy.
Taste the soup and adjust the seasoning with additional salt and pepper if needed. Ladle the soup into bowls and garnish with the freshly chopped chives before serving.