I tried out the external script for JOSM called Scanaerial. It shows a lot of promise. It is supposed to be able to scan features from aerial imagery and automatically create polygons for them. It hasn't gained a lot of popularity yet because it isn't included in the default extensions to download. It is one of the few plugins to use Ext_tools. Scanaerial replaces fuzzer and can be found at http://wiki.openstreetmap.org/wiki/Scanaerial.
I originally tried it with Python 2.4 under Windows XP but received a syntax error when running it. Once I upgraded to Python 2.7 with the new libraries it works fine. That version of Python is the newest version that Python Imaging Library is supported on.
You need a imagery layer and a blank data layer. Once you have the plugin installed, you just click on the map where you want it to survey. The script tries to match the area to the color you clicked on. It will even create multipolygons. By default, it is designed to find lakes, but it could be used for other areas also since you can configure the Python script using a text program. The default tags are source:position, source:tracer, source:zoomlevel and natural=water.
There is a lot that can be done with the plugin, but the developer said he currently doesn't have the time to work on it. He did a good job of documenting his progress in the code itself, so it should be easy to pick up where he left off. It would be a great project for someone with Python knowledge to jump into. Ideally it could be integrated into josm and include an editable popup box to input values. Maybe eventually it could replace Spacial Analyst for ArcGis, which scans features like buildings from photos and translates them into building footprint polygons that can be edited.