Dice the onions, potatoes and bell pepper into small pieces. Heat a large soup pot to medium-high heat. Add the butter and let it begin to melt. Add the onions to the butter. Saute the onions until they are tender and clear. To the onions, add the diced bell pepper and potatoes. Sprinkle on top of the vegetables the cornstarch and continue to stir with a spoon to prevent the cornstarch from sticking to the bottom of the pan. Once the cornstarch, butter and vegetables are incorporated, add the chicken broth to the mixture. Let the vegetables and soup simmer for 7-10 minutes on medium-low heat so the potatoes can become tender. Once the potatoes are tender, add the evaporated milk and seasonings. Cut up the boneless ham into pieces and add to the soup. Rinse the asparagus and cut off the last inch of the asparagus ends (they are too tough to eat). Cut the asparagus into 1/2-3/4 inch pieces. Add the asparagus to the soup and let the ham/asparagus simmer in the soup on low heat for 5-7 minutes, or until the asparagus is tender (but not mushy). When ready to serve, add the parmesan cheese and garnish with parsley (if desired). Serve warm.
Notes
*VEGETARIAN OPTION: This soup is great with or without ham. If you don't use the ham, add a few more vegetables or a little less evaporated milk.