Leeks must be thoroughly washed. Best way I've found is to cut legthwise and in half moons. Put this all in a bowl of water, swish, and drain in a colender. Repeat this until no sand is visible.
Put the potatoes in a large pot, add water to cover the potatoes by 2 inches and generously salt the water. Bring to a boil over medium-high heat, reduce the heat to medium and cook until the potatoes are fork tender, about 12 minutes. Drain well in a colander.
Meanwhile, in a small saucepan over low heat, combine the butter and milk and heat until the butter melts and the mixture is hot, 6 to 8 minutes. Use a Potato Masher and smash potatoes down. Fold in the milk mixture in two additions. Season with salt and pepper. Cover the bowl with aluminum foil and set over a large saucepan of barely simmering water to keep warm.
In a skillet or Dutch oven add the bacon and cook, stirring occasionally, until browned and crisp, about 5 minutes. Using a slotted spoon, transfer the bacon to a paper towel-lined plate. Set aside. Pour off all but 3 Tbs. of the fat from the pot. Return the pot to medium heat, add the shallots and leek and cook, stirring occasionally, until softened, about 5 minutes. Add the kale and toss just until wilted but still bright green, about 3 minutes. Add the cabbage and toss until tender-crisp, 6 to 7minutes. Crumble the bacon, and season with salt and pepper. Stir the potatoes into the cabbage, kale, leeks and shallot mixture and serve warm.