In a large stock pot, melt the butter. Add the onion and cook over medium heat until transparent. Add the garlic and cook 1 minute. Stir in the potatoes, celery, parsley and carrots. Pour in the chicken broth and bring to a boil. Reduce heat to simmer, partially cover and cook until the potatoes are tender - 20 - 30 minutes. When the potatoes are fork tender, lightly mash the potatoes with a potato masher, until your desired consistency - I like to keep my potato soup quite chunky. Add the corn, milk and cream. Add salt and pepper, to taste. Return heat to medium - low, cook approximately 30 - 45 minutes, uncovered, until the soup is hot and creamy. (Taste again to see if you need to add more salt or pepper.) Stir a few times during this final stage of cooking. Top with your favorite toppings, if desired - serve.