Upgrade storage whenever you feel like you need more storage. Item storage is a bigger deal when you don't have easy access to pokestops; more storage lets you go somewhere with stop density, fill up and then just last on that for a while. Personally, I like having the storage space to hold onto 50+ ultra balls, because I know first hand how quickly I can burn through those against a rare Pokemon like Dragonite.
Pokemon storage is handy for a few things. It's good if you catch a lot at once and want to hold on to them to check IVs later. Appraisal makes it easier to transfer immediately though. Personally, a fair amount of my space is getting filled up with rare Pokemon that I don't want to transfer (may be good for trades in the future!), common stuff I'm saving for mass evolution, various Pokemon with decent IVs that I intend to evolve in the future (and back-ups in case the first try has bad moves), various Pokemon with high CP that I might evolve if I have a surplus of candy and don't really plan to power up... I'm a bit of a hoarder, actually.
Incense has never really worked out for me so I don't intend to buy it. I still have a free one I haven't used yet. You get more out of it if you're moving, and research from folks online seems to indicate that you'll have better odds of rare stuff if you use it in the middle of nowhere, far away from where Pokemon spawn naturally. That said, rare stuff is certainly possible... I just haven't experienced it myself.
Lures can be good but I'm selfish.
I think balls are there mostly as a last resort. Like, you run into Dragonite but you're out of Pokeballs and pokestops are far away. Buy some pokeballs quickly!! But there are enough pokestops around me that this has never been an issue for me.
Incubators are actually pretty good. If your goal is to fill up your Pokedex, eggs can get you a lot of stuff not normally found around you. For example, I've never seen a Doduo wild but I've hatched several from eggs, enough to evolve one into Dodrio. If your goal is to get strong Pokemon, hatched Pokemon usually have better IVs. Moreover, hatching Pokemon gets you a nice bit of candy (I think it's 5-35) and stardust. If you want to be super cost efficient, just save disposable incubators for 10k eggs only.
Lucky Egg can be good, but I feel some buyer's remorse from them. I got enough out of Pokemon Go as a free player that I decided to put money into the game. I was past level 25 with no more Lucky Eggs remaining, and no chance of another free one until Level 30. Since I had enough to do mass evolution, I wanted another egg. And to get the best deal, I bought the 25 pack... Now I'm at level 29 and I've only used 2 eggs so far. One more mass evolution should get me to level 30. And from then on, levelling up has vastly diminished returns, so I'm not sure if all those eggs wil be worthwhile. That said, it may be good long-term if they raise the level cap later.