Advantage Python: arcPy is nicely optimized for doing some bulk map operations, so depending on what you want to do, it may be tons easier in arcPy. This is especially true if you don't require any user interaction to run the tool. For speed of development, Python may be what you prefer. Although, I did find setting up a Python Add-in to be a bit trickier at first, once you have done it once, you won't have any problems.
If you have custom toolbox with python scripts that are already setup to take advantage of the built-in user interface for getting attributes, it is easy to turn this into a addin, very few steps. This may not be the user interaction that @Vicki is refering to, but if all you need is the basic tool interface, this works slick.
Assuming you have a custom Toolbox and python scripts with the parameters/GUI already setup (i.e. a standard ArcGIS Toolbox)
import os relPath = os.path.dirname(__file__) toolPath = relPath + r"\<yourToolBoxName>.tbx"
If this doesn't make sense and you would like more info, let me know. You can check out the help for GPToolDialog, but I find the help is still missing a few critical steps to make this easy. I have another forum entry and some powerpoint slides if anyone is interested.
Edited 4/8/2015 to fix bad formatting from old forum to GeoNet conversion. Also added a PDF of a presentation I did at our local dev meetup a couple years ago on the subject....older, but should still be valid.