Flying was probably the easier option, but I took the bus because it was cheaper (flying was around $200 I recall)
After doing tons of research on this, there seems to be 2 main bus options to get you from Cusco to La Paz
"Regular" tourist bus - leaves from the main bus terminal in Cusco and arrives in La Paz 14 hours later. This is the option I took because it's cheaper and shorter ($20 and 14 hours).
Bolivia Hop - which is a hop on/hop off bus that stops for a few hours in Puno and Copacabana. But you can stop for as many days as you like. You can just catch any one of their daily buses on this route to continue your journey. This option takes minimum 24 hours, leaving Cusco at 10pm and arriving in La Paz at 10pm the next day. Costs $59 USD. You can see details on their official site here. This option is good if you want to check out Puno and Copacabana, which are actually pretty nice because they're both on Lake Titicaca
The regular tourist bus I took was from a company called TiticacaBolivia. They have a listing of all their routes here
The bus went through Puno and crossed the border at Desaguadero. Note that this is not the scenic route through Capacabana as you won't be going along Lake Titicaca
The bus was fairly comfortable, nothing fancy. Bathroom worked fine. No wifi. Food was provided
I sent an email to info@titicacabolivia.com to buy tickets. I bought it a few days ahead of time as their website states to reserve 24 hours before. Pretty straightforward