Cut celery into 1-in. chunks. In a large pot, boil celery and onion with broth, covered, until tender, 20 to 25 minutes.
Meanwhile, melt butter in a small frying pan over medium heat. Cook apple, stirring occasionally, until caramelized, about 10 minutes. Set aside.
Working in batches, ladle celery mixture into a blender and whirl until very smooth, about 2 minutes per batch. Stir in half-and-half and season with salt and pepper. Ladle soup into bowls and sprinkle with parsley, reserved apple, and cheese.
I tried this soup twice. After the first time I made three changes: I peeled some of the fibers off of the celery before cooking it, I doubled the apples and butter and then incorporated that into the soup, and I added whole milk with a tablespoon of cornstarch instead of the cream (since I felt like the butter was adding enough fat). On the first try it was good, and on the second try it was very good!