There is no 'best way'
The best way entirely depends on your front-end developers and the workflow they work best with, there is no go to solution for this and many projects work differently.
I recommend using SCSS via Frontools and the Sass blank theme as they greatly increase productivity due to the default workflow being incredibly slow. But this is also personal preference as I much prefer working with SCSS over LESS.
As for whether it's better to create your own CSS files or use the existing - this depends on the size of your theme and again how your front-end developers like to work (there is a huge variety in how front-end devs work).
If you're only making smaller changes and/or the theme resembles the Luma theme then your best bet is to create
_extend.less which will add your CSS on top of the Luma theme. The downside of extending is your styling is split up between your theme and Luma, also you're adding additional CSS on top of the Luma theme which is a waste and not great for file size.
Instructions on this can be found here - https://devdocs.magento.com/guides/v2.2/frontend-dev-guide/css-guide/css_quick_guide_approach.html
More significant changes
If you're making a lot changes (such as keeping the majority of LESS styling but changing the styling) then you'll likely want to overwrite the existing CSS by adding the file you're editing into your theme.
More info on this can be found here - https://devdocs.magento.com/guides/v2.2/frontend-dev-guide/css-guide/css_quick_guide_approach.html
Styling from scratch
My ideal way is to create all my own styling, this is because Magento rarely follows best practice so I find myself fighting Magento's code more than working with it. It also allows me to lint my code and ensure it uses best practices, when I extend or re-use Magento's CSS I can't test/lint it as it fails almost every test/lint.
For instructions on how to theme from scratch see my post here - Theming for Magento 2 - Starting from scratch