As I understand it when a Plex client requests playback of file from a Plex server there is a negotiation whereby the client tells the server what codecs (audio and video) are natively supported. The Plex server will then stream the content to the client in a format that it can play natively. So yes, Plex makes the determination for you.
The transcoding happens realtime on the Plex server so you need a server that is reasonably powerful. I am running my Plex server via a plugin for Open Media Vault on an HP N54L Microserver, which is not the most amazing CPU, but can transcode 1080p on the fly no problem.
The transcoding is not all or nothing either. Lets suppose I have a film with H264 video and DTS audio and my client supports H264 but not DTS. Plex will send the video without messing with it but the audio stream will be transcoded to something that my client does support.
The transcoding can also be used to ensure you can stream content based on available bandwidth. So, on my LAN I have the wired clients set to accept anything up to 1080p @ 20Mbps. However, my wireless Roku LT I have set to a maximum of 720p @ 8Mbps. This mechanism also translates to devices when connecting to your Plex server remotely. I was recently travelling in Germany and streamed some films to my laptop in the hotel using the hotel WIFI which was capped at 2Mbps per customer. I set my Plex client to 768p @ 2Mbps and eveything worked without a hitch. I used the airport WIFI to stream some TV episodes to my phone using 720p @ 1Mpbs.
Plex Home Theater is Open Source client made by Plex. It is essentially XBMC with the Plex goodness included. I run this on several Linux laptops as an application but it can also be run on a media player device in the same way you can with XBMC now. You can also access your Plex content via any web browser and there are apps for every mobile device.
I was a very happy XBMC user for a long time but I dabbled with Plex on and off a few times, it was never really ready for prime time. But Plex hit it’s stride some months back and that’s when I switched and soon after replaced XBMC/PleXBMC with Rokus. Roku has a very high WAF.
I love Plex, but it is not perfect. Music management and playback is beyond shit. So, I recommend you don’t even frustrate yourself with it. However, if you want to stream Films, TV and Home videos then IMO I don’t think Plex can’t be beaten. The meta data collection and management is brilliant, I can access my content on any device from anywhere and my wife and daughter love it.