In a large heavy-bottomed saucepan, cook butter and onions over low heat until very soft and caramelized, about 30 to 40 minutes.
Add potatoes, water, and salt. Bring to a simmer.
Simmer until potatoes are very soft, about 30 minutes.
Remove from heat, use a potato masher to mash some, but not all, potato pieces.
Whisk in heavy cream and serve immediately.