Yes, a foam cannon is worth it, especially if you want to keep your cars original shine. Using one before each full contact hand wash will remove large amount of dirt that could otherwise scratch your car. One of the reasons why some prefer to use foam guns/cannons, is that the foam produced helps break down heavy dirt without agitation. By applying suds with zero agitation, heavy layers of dirt can begin to run down the vehicle's surface without you even touching the paint.
Hope this helps