Confucius says:
COUNTER+0x30 converts the integers 0-9 into the printable ASCII characters 0-9.
The +0x30 is not needed if you're using sprintf(OutString, "LED %d", COUNTER); because
the %d tells sprintf() to convert the integer in COUNTER into a string of printable ASCII number characters, which is better, because sprintf() goes further than just 0-9, - it'll do multiple digit numbers.