Can some one please explain why is there a While(True); at the end of this program?

The processor never "stops" (in normal operation).

And if you follow the standard Arduino programming practices you have a main loop that runs over-and-over forever.

I'm not sure what happens when an Arduino program "ends" (if you don't make a an infinite main-loop) but the compiler probably adds some machine-language code to run NOP (no operation) in a loop until the processor is reset. That's effectively the same thing as while(true) and it might be exactly the same thing.

If your on a computer with an operating system the operating system determines what's done when a program ends (or is closed). Your PC is probably running LOTS of NOP instructions MOST of the time.

Most Windows programs also have a continuous loop that runs forever until the program is closed. It's usually looping and checking for a mouse click or keypress if it's not doing anything else.