Boil 6 cups water in a large saucepan over medium heat. Carefully add potatoes and cook for 20 minutes or until fork tender. Drain immediately, rinse with cold water and let cool. Chop into small pieces.
Heat olive oil in a large skillet over low medium heat. Add onion and garlic. Cook until onion begins to soften; about 2 minutes.
Add tomatoes and cook for 1 minute.
Add potatoes and ¼ cup water. Stir, lightly mashing potatoes with large spoon. Season with salt and pepper and continue cooking until mixture is thick and a bit chunky; about 10 minutes.
While potato mixture cooks, prepare the bean purée: Combine beans, milk and bouillon in a blender container. Blend until smooth, add more milk if mixture is too thick. Transfer to a small saucepan and warm up purée.
Stir chopped poblano pepper and cheese into potato mixture.
To prepare flautas: Scoop 2 tablespoons of potato mixture in the middle of each corn tortilla. Roll and secure with a toothpick. Repeat until all mixture is used.
Heat about 1 inch-deep vegetable oil in a sauté pan over medium heat. Working in batches of 2 or 3, fry each rolled taco, turning on all sides with tongs until golden and crispy; about 90 seconds each. Transfer to a paper towel-lined plate to drain any excess grease. Remove toothpicks from flautas.
To serve: Pour ¼ cup bean puree on the bottom of a shallow plate. Place 2-3 flautas in the middle of plate over bean puree. Top with lettuce, fresh tomato, queso fresco and red onion. Serve with salsa and sour cream.