Preheat oven to 325°F (165°C). Wrap outside of springform pan with aluminum foil.
Mix graham cracker crumbs, sugar, melted butter, and salt until mixture resembles wet sand.
Press mixture firmly into bottom and 1 inch up sides of springform pan. Use the bottom of a measuring cup for even compaction.
Bake crust for 10 minutes, then remove and allow to cool. Maintain oven temperature.
Beat cream cheese in large bowl until completely smooth, about 3-4 minutes.
Gradually add sugar and continue beating until well incorporated and fluffy.
Add sour cream and vanilla extract, mixing just until combined.
Mix in flour and lemon zest if using.
Add eggs one at a time, beating on low speed after each addition until just combined.
Pour filling over pre-baked crust, smoothing the top with a spatula.
Place foil-wrapped springform pan in larger roasting pan. Fill roasting pan with hot water about halfway up sides of springform pan.
Bake for 60-70 minutes until edges are set but center still has slight jiggle.
Turn off oven, crack door open, let cheesecake cool in oven for 1 hour.
Remove from water bath, peel off foil, cool completely on wire rack.
Once cooled, cover and refrigerate for at least 6 hours, preferably overnight.
If using fresh cherries, combine cherries, sugar, cornstarch, and lemon juice in saucepan. Cook over medium heat until thickened, about 5-8 minutes.
Remove cherry mixture from heat, add almond extract if using. Cool completely.
Once cheesecake has chilled completely, carefully remove from springform pan and transfer to serving plate.
Spoon cherry topping over cheesecake, covering entire surface or creating a decorative pattern.
Optionally, pipe whipped cream around the edges before serving.