Companies are built on the principle that money must be made. In order to do that, problems need to be addressed and new features need to be launched. And by definition, there will always be more problems and ideas than that there is time to address them: we need to choose.
Don't fall into the trap to overcomplicate this prioritization process. The goal of defining priorities is to prevent big mistakes and to make sure you're not missing out on big opportunities. A lot of companies are defining complex algorithms that produce precise priorities based on very imprecise input data. Focus on eliminating the big mistakes instead over controlling the tiny details.
At Blendle, we're trying to get better with priorities by using a value/complexity matrix. A simple spreadsheet which allows you to enter things like customer benefit, opportunity size and development effort. For each feature, a score between 1 and 5 is entered. The end result is a score for each feature. While helpful, the input is quite imprecise and often subjective. This is by design, but that also means that you should not treat the output as a perfect way to sort things out. It is just as imprecise. The way to get to the list, by filling each column, is what is actually important.