Cook the bacon in a large Dutch oven over medium heat until crisp, about 5 minutes. Remove from the pot and reserve the bacon. If there's excess bacon grease, drain off all but 1 tablespoon.
To the same pot, add the onion and cook for 5 minutes, until fragrant. Add the garlic. Season with salt and pepper. Stir in the butter and flour, cook for 1 minute. Pour the broth and cider over and stir in the sweet potatoes. Partially cover and simmer over medium heat for 15-20 minutes, until the sweet potatoes are very soft. Use a potato masher or fork to mash the potatoes. I like to leave my soup chunky and do ⅓ of the potatoes.
Stir in the milk, chipotle, chili powder, paprika, yogurt/sour cream, and cheddar cheese. Cook for 5-10 minutes, until the cheese is melted. Remove from the heat and stir in the cilantro. Season with salt and pepper. If needed, thin with additional broth.
Ladle the soup into bowls. Top, as desired, with yogurt/sour cream, cheese, cilantro, and green onions. Adds lots of bacon. Eat and enjoy!