The Bronx Zoo has a Butterfly House in which they fly free, land all over the place including your hand, though it takes a while to spot them all, if you can.  Many of them are hidden by the flowers and plants.  But a camera in there would really net some cool shots.
Unfortunately, it has an extra admission cost, in addition to that already paid to get into the zoo.