Well, it all depends on the story, so it varies, but here are a few things that make ME appreciate an ending as being "good":
1.) Have the main character achieve what they set out to do. If, say, you have an adventure story where the main character sets out to topple an oppressive government - have them achieve that. If you're writing a story about a bunch of superheroes saving a city - have them save that city. This goes for smaller goals as well; if it's a romance story where the character falls in love, have them achieve what they want with that love - a stable relationship, or whatever it might be they're after. Caveat: if your intention all along was to have them fail, then have them fail; endings that are disappointing to the characters aren't necessarily bad endings.
2.) Complete character arcs. This is a subset of the previous one: it's less to do with the actual, external plot, and more to do with whatever's going on inside your character's head. If your character is mean at the beginning of the story, and grows towards becoming nicer - have them reach some sort of completion of that transformation. If it's an evil character trying to redeem themselves - let them redeem themselves. If it's a naive character who grows towards a more realistic worldview - have them, at the end of the story, having acquired that realistic worldview. As with the above, this applies to all sorts of characters and all sorts of trajectories of their personalities.
3.) Decide what you want to achieve with your story, and be clear about it. Decide what's going to happen to each character and why, and make sure the reader understands not only WHAT is happening, but why.
4.) If you have subplots - wrap them up. Most stories have more than one thing happening - there will be many threads to your story, and they all have to lead somewhere. Try to wrap them up, or tie them into the main storyline, near the end. This gives your readers some closure, and makes the ending feel like an ending.
5.) If you're going with an open-ended story, try to give the readers SOME closure. Whether an ending is good or bad has nothing to do with whether it's open-ended or not. Some stories require a "closed" ending - one where the characters achieve everything they set out to do, and you can tack a "and they lived happily ever after" on the end. Others work fine with open endings - where the main plotline remains somewhat unresolved, and the reader is left to imagine what happens next.
What separates a GOOD open ending from a BAD open ending, tends to be where and how they end. You can't just drop "THE END" in the middle of a storyline and be done with it; that's not how good storytelling works. If you're going with an open ending, try to leave the character(s) poised on a turn in the storyline; where they've finished something, and are about to move on to the next step. Ending in the middle of a step usually ends up badly. There's a difference between an open ending and a cliffhanger; a cliffhanger comes with the promise that next time, the reader will find out what happens. An open ending leaves enough closure for the reader to be happy with not knowing.
A cliffhanger is someone opening a door and gasping at something the reader doesn't get to see. An open ending is the cowboy riding off into the sunset, in pursuit of new adventures.