Cover half of the potatoes with water in a medium pot and bring to a boil. Boil until tender, about 40 minutes. Drain and cool potatoes slightly.
Skin and mash the potatoes with the butter and salt.
Peel the remaining potatoes and grate them on the small holes of a box grater. Put the grated potatoes in a clean kitchen cloth and squeeze out all the liquid.
Combine the mashed and grated potatoes and knead them into a dough.
Preheat the oven to 350F. Meanwhile heat 2 tablespoons olive oil in a skillet over medium-low heat. Add onions and cook, stirring periodically, until caramelized, about 25 minutes.
Form the potatoes into about 14 balls, each approximately 1/2 cup in size. Hollow out the balls, making a small hole and fill with about 1 teaspoon of onion mixture, pinching the top closed.
Flatten balls into patties. Pan fry the patties in batches, with 2 tablespoons olive oil per batch, 4 minutes on each side, or until golden.
Place all the milcaos on a baking sheet, and bake for 30 minutes flipping halfway through. Serve with fresh salsa and/or sour cream.