If using fresh corn, scrape kernels from cobs using small sharp knife or spoon. Place half of the corn kernels in blender with tomatoes, 2 cups of broth, and oregano. Puree until smooth. Set aside.
In a large saucepan over medium heat, cook bacon, turning once until brown and crisp, about 10 minutes. Remove bacon to a paper towel lined plate to drain. Set aside. Add onion to bacon fat in saucepan and cook, stirring frequently until onion is soft and translucent. Add garlic and stir for another minute.
Add tomato-corn puree to saucepan with remaining 2 cups of broth and cayenne pepper if desired. Bring to a low boil and add remaining whole corn kernels. Simmer over medium-low heat until thickened, about 20 minutes. Stir occasionally and remove any foam as it develops with a large flat metal spoon. Season with salt and pepper.
If using parsley or cilantro mix that in along with the cream, and heat through.
To serve, garnish with crumbled bacon, remaining parsley or cilantro, crumbled cheese, tortilla chips or strips and avocado.