I use both but with a twist: my laptop is just a screen and keyboard to access my desktop (thin client).
If you don't need to work on the go (which must be the case, since you are considering a desktop) then definitely go for a desktop, as you can get a much more powerful system and bigger screens. I however find that I get tired working in my home-office and sometimes like to lie in bed and do some work there.
I have settled on getting an LG Gram 17 alongside my desktop. It has a huge screen, is super light (1350 grams) and what I do is connect to my desktop with RDP and comfortably work from other rooms of the house.
In fact, I recently started using a virtual machine to do my work. I run a headless VM on my desktop with VRDE (remote desktop for virtualbox) enabled. I either attach to it locally from Virtualbox, OR when I am on the laptop I use remote desktop connection to attach remotely. It's like a private LVDI.
I intend to look into xrdp but this last approach has the advantage that if I go on vacation I can actually copy the VM onto my laptop and then copy it back when I return. This allows me to work locally on the laptop while away from home for extended periods.
EDIT: my desktop is a Ryzen 3900 with 64GB RAM. I can't imagine how much a laptop with that much RAM cost, and it would anyway not be as powerful as the desktop (CPU-wise). I don't need much GPU so I only have an RX550 but the same holds for GPUs: you can get much better bang for your buck (in a normal market, currently things are a bit crazy).