Puppeting vs Annexation is essentially a question of army size vs security+production.
When you annex a country, you will gain full access to its resources and factories, but the population counts as non-core pop, you can only ever recruit 0.1% of your non-core pop into the army, so the manpower gain from annexation is minimal.
A puppet does not provide its resoruces immediately, but will do so for free, you only have to spend the convoys, however you won't be able to use their factories or build in their territory, you may use air and naval bases though.
A puppet has it's population as core pop, meaning, it will provide a lot more manpower and thus the puppet is able to recruit many more divisions than you would be by annexing, the puppet will also frequently grant a significant portion of its army to your control as an expeditionary force. While you won't be able to control what divisions you get, your army size will be much larger by puppeting. For comparison, in my game I got about 50 divisions total from Vichy France, with a total pop of perhaps 20M, my entire non-core pop that game was 500M, which is only worth 500k manpower, or about 50 divisions as well.
The second issue is security. What happens, when an enemy captures an annexed state? Well, it's occupied and usable by him, that's it. What happens, when he captures a puppet? The puppet may surrender, if the enemy gets enough victory points. This causes all army divisions of the puppet to immediately disband, including those in your own army, which can prove fatal if it happens at the wrong time. On the other hand a puppet will be able to handle occupation resistance better than you.
So, in summary: if you need production or the location is risky go for annexation. If you need more troops, go for puppet.