This seemingly simple question requires a lot of elaboration to answer, so bear with me...
Knowing your problem
First you have to determine why you need software at all. Nobody buys software just for the sake of it - software is a tool to solve a specific problem you’re having. The problem can range anywhere from I need to convert .docx into .pdf to I need to confidentially work with patient information, and more often than not people have a whole slew of problems to fix. To keep the discussion simple let's assume you’re only trying to solve a single problem.
Once you know precisely what problem you have you can look around for software to solve it. In the easiest scenario you find an off-the-shelf tool that solves precisely your problem, out-of-the-box. You will know the price of the solution up-front, you enjoy a low price because the development cost is shared with other customers and you can start using it right away. End of story, “they lived happily ever after”, and all that.
Customizing software vs. custom software
If there is no out-of-the-box solution you’ll have two avenues left: buying software that you can customize to fit your needs, or buying custom made software.
One option is not strictly better than the other one, it’s all about the payoff. To make a comparison with buying a house: if all you want is a red house it might make sense to buy a yellow house and pay a painter to make it red. On the other hand, if you want a 3-story house in a torus shape with a glass bridge and a front door that should be precisely 3.49m tall it might be a better choice to buy a bare plot of land instead. In the next section we will look into these two options more closely to see when which option makes more sense.
Let’s start with customizing standard software: We’re now in the range of Exact, SAP, PrintVIS, SharePoint. These are solutions that you can configure to match your environment and to solve your problems.
The advantages of this approach is that, given it requires little to moderate amount of work to customize the software, you’ll be done soon-ish and it only costs you the base software plus the time to modify it. Another nice advantage is that when you buy a new version of the base software you usually get lots of new functionality without having to re-invest a lot in your own customizations.
Tailoring such software can be an art in itself. If you don’t have the know-how to do it yourself there are a lot of companies that can do this customization for you. Sometimes this is even the business model: Sell software as a “off-the-shelf solution” that requires “easy customization” that in practice is so complex you’re bound to hire consultants to do it for you, either directly from the software supplier or one of the satellite companies around it. In the most evil incarnation this setup can constantly drain resources from your company while providing little additional business value. This is also known as “consultancyware”.
This approach can turn sour when you have problem XY and you decide to buy software P that is known to solve XZ “but it can be easily customized!”, but in the end you discover your problem XY is really nothing like XZ at all. It takes a lot of customization to change the software to ignore Y and solve Z instead, which costs a lot of money, and the end result is that the software solves your problem in a rather elaborate, not entirely correct way. You also may end up having to manually perform certain steps which would take too much time to customize into the software. This can cost you a lot of money and give you a poor end result.
The other approach is getting software made specifically for your problems. This doesn’t mean everything is done custom-made. To maintain the building analogy: Only very few roof mechanics are growing their own trees to turn into logs to turn into boards to turn into shingles to put on your roof; instead most roofers will source their shingles from other companies.
Similarly in IT: Nobody is going to build the hardware to run the software on, they simply buy some Dell servers; nobody is going to write their own operating system to host the software on, they simply use Linux; similarly, companies will try to reuse existing parts as much as possible to build your software. This usually involves frameworks such as .NET, Python, Ruby, Django, Angular, React etc. etc.
A great advantage of custom software development is that is it built perfectly to fit your environment to solve your problem in the way you want it. For example, you can get a nice simple interface that people with little training can use that behind the scene performs a lot of elaborate steps. By reducing the number of options in the interface you can greatly reduce the risk of errors.
Custom software is not perfect though: As a software company we have to be up-to-date on all the different tools that we might be able to use to solve problems with. We have to have experience with them and roughly know before we start with a project which tools would work well and which would not. If you buy custom software from a company that is too much focused on a certain tool instead of solving your problems you might end up in a similar situation as with concultancyware: You’ll invest a lot of time and money and get poor results.
The price of software
In the previous paragraphs I mentioned certain options being cheap. This is relative to what you’re getting, not that you can easily pay for it or even if it makes financial sense for you to buy the software.
To give some examples:
Off-the-shelf solution Rhinoceros 3D CAD software costs around €1000 per user for version 5. It also solves a ton of complex problem, so if your problems aligns with what they are solving it can be quite a bargain.
Off-the-shelf solution Adobe Creative Cloud Suite is about $720 per user per year. If you do a lot of fancy graphical tasks this might be a great deal. On the other hand, if you’re only making memes it might be a bit too expensive
To-be-customized ERP solutions usually cost around $4000 per user to get started, and then you still need to pay for the customization. In the end it can easily cost between $150.000 and $750.000 for a mid-sized company to deploy an ERP (source)
To conclude, it can be tricky to decide what route to take to solve your problems. Especially if there is no off-the-shelf solution since then you have to consider what company to work with as well, potentially for extended periods of time. If in doubt make sure to shop around, and during a project be prepared to keep evaluation your options.