Yes, the question lacking some details: If it's a wordpress.com blog you cannot upload a custom theme. It it's a self hosted wordpress site/blog you can use any free/premium theme of code custom theme. The new theme should be in (wp-content/themes) folder and can be activated through Dashboad -> Appearance -> Themes
You can use your own theme in your own hosted domain.For you may activate it by uploading in public_html and activate it in your dashboard.