In a large stock pot, melt the butter over medium heat. Add the onions and potatoes. Cover and cook, stirring occasionally, until they begin to soften, about 10-15 minutes. Avoid browning.
Pour in the stock and half-and-half. Bring to a low simmer. Continue cooking, stirring often, until the potatoes and onions are fully soft.
For a smooth soup, use an immersion blender to blend the soup directly in the pot until smooth. For a chunkier texture, skip this step.
Add salt and pepper to taste. Adjust seasoning as needed. If too thick, add a bit more stock to thin it out.
Serve hot, garnished with chopped parsley and optional shredded cheese and bacon bits.