I assume a patch is to fix a bug or some sort of an existing plugin and an add on is a new or different feature? But what I don't get is if I wanted to make an add-on, do I keep my changes in a separate directory or change the current files?

The first thing to do is find out whether the plugin can accomodate third party add-ons. If it does, it will have some mechanism for including those add-ons. If you simply modify existing files and post them elsewhere then the next update by the original author will overwrite your changes. Some plugins provide folders where you can put your files and then include them by entering custom settings, for instance MoorMap Overlays are added that way. Other plugins have directions on creating modules which can then be displayed in the plugin such as Compendium. If the author has not provided instructions on how to create an add-on then you can try contacting the author by sending a PM.

Some authors have left and have posted that they welcome other authors to take over development of their plugins. If the plugin has not been abandoned then the appropriate thing is to contact the author and discuss your ideas for additional features. They may very well already be working on a similar feature or they may wish to include your changes or they may not feel that your feature is a good extension to their plugin or doesn't fit the direction they are going with their plugin. Whatever the case, you should abide by the wishes of the author and if they do not wish to incorporate your changes you can always create your own separate plugin.