I don't know how many themes have a logo option. However, there are other ways to work around that if you don't mind doing some tinkering. You may be able to do it by creating a custom header, which you can add in at least some of the themes. However, how well that works will depend on what you want your blog to look like. I'm using the Bueno theme with a custom patterned background, and I just wanted my logo over the background, which was impossible to do in a header.
However, I accomplished what I wanted to do by adjusting the CSS. (You have to pay for the Custom Design upgrade to do that.) I uploaded a GIF of my logo to my media library. Then with CSS I made my site title transparent and added a link to my logo GIF in the site title's background. So essentially, my logo is underneath my default WordPress site title, but since I made the site title transparent you only see my logo. It did take some experimentation with different settings to get it to display properly, so this is a solution which is probably best for people who already have some experience with CSS or who don't mind spending time learning how to use it. What I haven't figured out how to do, though, is how to link that logo to my website's home page. The site title automatically links to your blog's home page, and the few things I've tried to do to change it haven't worked. That's likely something that can only be changed through the HTML code, which you can't do on WordPress.com. Of course, if you're using your WordPress blog as your whole website, then that won't matter to you.
If you'd like to compare the changes I made to my blog with the regular Bueno theme, my blog is at http://blog.karenjoslin.net/ . Good luck!
~ Karen Joslin