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.