It's already been stated that CGI has some definite benefits. But, since the OP specifically mentioned puppets, I assume that the subject is creatures and characters, rather than outright special effects. In that case, I believe that puppets are the hands down winner, with a rare few exceptions.
Jabba the Hut, the Alien Queen, and the Sarlacc are great examples, since the characters have been created by the use of puppets, and CGI.
In each case, the puppet version always looked more realistic than it's CGI counterpart. Also, because it's a puppet, the director must carefully choose the film shots that show the puppet, leading to a much more thought out film.
Alternatively, CGI just splashes onto the screen with little thought to anything other than the creatures overwhelming presence. The creature loses out in this representation, because it no longer has personality.
In example, the Sarlacc scene in Return of the Jedi. When the puppet Sarlacc reaches out to grab Lando and attempts to pull him in, the audience senses the dangerousness and fiendishness of the Sarlacc. Alternatively, when the CGI version simply pops it's head up and grabs a falling soldier, the audience see's more of the monster's body, but has little impression of it's personality other than " that's a bad thing".
The only time CGI characters win over puppets is when the character is too large or complex to be made into a realistic puppet. Transformers, the Incredible Hulk, and most of the creatures in Lord of the Rings, and Harry Potter, would be too difficult to shoot as puppets. Also, notice that Transformers and the Incredible Hulk are both characters that require immense on-screen presence. Lord of the Rings and Harry Potter often require the creatures to engage in activities that would be impossible for a puppet to be used for.
So, occasionally CGI must be used, but only when it's impossible to use puppets. Which is how it should be, since puppets are the superior type.