...or, you could take advantage of C and overload the function. It would be a little more efficient since the decision would be made at compile time instead of run time.
Of course, since Objective-C is weakly typed, it's possible you won't know the type at compile time. If you are throwing around "id" already, this would be impractical.
I would like to point out, though, that the parameters required to pull information from an NSDictionary are quite different from that required to pull information from an array. Therefore, I question the feasibility of a method whose purpose is to mask this process. Why not just use the native lookup methods?