Here is a short tutorial for sprintf:
Essentially you are choosing between format as you go (separate serial.print and using stream library) and deciding the formatting and get everything formatted in one shot (sprintf). The only significance is that sprintf lets you precisely control the number of digits for numbers and spaces so the output looks better in situations like time and other stuff. You don't want 12:0:0 then use sprintf to get 12:00:00