Where does the transponder read altitude, or does ATC get it from radar?
does the aircraft have or need an encoding altimeter interfaced to the
  transponder to report altitude, is it built into some transponders


In order to squawk mode C, you need an encoding altimeter connected to your transponder and the transponder needs to be set to transmit mode C. Does that transponder have a build-in encoding altimeter? That requires a check through the logs and/ or manuals. In my aircraft they are separate, in yours I have no idea.


  or was the Approach controller using altitude as reported by the radar
  if it has height finding capabilities?


Maybe. It depends upon the specifics of the airport. If your transponder's altimeter was calibrated incorrectly or otherwise bad (extremely difficult for you as the pilot to verify in a rental aircraft during preflight) then they may have been trusting your transponder for your altitude data, which was incorrect. If they were using radar with vertical capabilities (precision approach radar is, depending upon your viewpoint of part 91 vs part 121, either relatively rare or everywhere you might need it where I live) they may have been comparing that to your transponder's altitude reported.

All of this depends upon if you checked your altimeter using the current local setting on the runway threshold prior to takeoff. Have I always done that? Yes. Does everyone? No. If your panel altimeter checked out, you used the proper setting during the approach, and your transponder is telling them you are at the wrong altitude the transponder's altimeter appears to be the problem.