Melt the butter in a large soup pot over medium heat. Add the sliced onions and saute to coat. Cook until the onions just start to turn light brown. Peel the potato and cut into cubes, add it to the onion. Cut the kernels of corn off the cob with a sharp knife, add them to the soup pot. Add the broth, spices and a few grinds of fresh pepper and allow everything to simmer to cook the corn and potatoes through.
If using raw shrimp, toss them in the olive oil and a grind of fresh pepper, and put on a baking pan. Cut the poblano or pasilla chile in half length wise, and place it skin side up on the pan as well. Bake on the upper rack for about 5 minutes for shrimp to cook through. Remove the shrimp and set aside, put the pepper back in until the skin blisters (about 5 more minutes). While waiting, peel the skin and tails from the shrimp and cut into 1” pieces. Remove the pepper and put it in a ziploc bag to cool, this will make the skin easy to peel off.
Check on the soup to make sure potato and corn are cooked through. Using an immersion blender or a regular blender, blend the soup to create a puree. I like to leave it a bit chunky, this is up to you.
In a seperate bowl, combine the shrimp pieces, lime juice, chopped herbs and scallions if using them. Peel and cut the avocado into small cubes, add to the bowl. Rub the skin off the roasted chile, cut into chunks. Toss gently together.
Taste the soup for seasonings and adjust as you prefer. Allow people to stir in their sour cream as desired. Serve each portion of soup with a big scoop of the shrimp and avocado mix on top.