Initial Cost has a role to play. Open Source is generally cheaper on both the hosting and the tooling. The only way that closed source competes is by trying to provide better tools, sometimes even free tools. If your input costs are low open source can be an excellent option.
Microsoft will give away the web developer version of Visual Studio to bait developers in, and then give them a beautifully functional environment that makes development easy. They hype everything up and keep new features rolling in.
Consider portability VS level of integration.
Open Source can be very sustainable, because you can change out parts you don't like or parts that fall out of favour. With Closed source you are stuck.
Generally speaking Closed Source solutions are more tool focused and more integrated. Open source does not enforce use of any specific tools and represents a mix-in manner of solving problems.
The level integration in closed source can be high. For instance Microsoft provides
- The programming language (c#)
- The framework (Asp .Net)
- The Database (Sql Server)
- The Web Server (IIS)
- The OS (Windows)
With open source you can have any combination of operating systems, DBMS, framework and language. They are not tightly integrated, but they are portable.
Consider customizability . Closed source systems are not very customizable. They try to provide pluggable frameworks etc but mostly there are points where you get stuck. Sometimes they have a premium product that you then have to invest in.
Consider giant applications that need custom caching, database solutions, or even a customized OS to run. If you reach that point that your application is so massive that no prebuilt solution can deal, and you want to customise, open source will pay off.