The question you ask is a very very common one in the software development community. People can see the value in having a UML model of their code, however they also realize there is extra overhead in designing the model and then writing the code (even if the code skeleton does come from the modeling tool).
My suggestion to ease yourself into it (without the overhead) is if you are doing a smaller project that your able to conceptualize in your head, then try writing your code first, then reverse engineering it into a tool such as Enterprise Architect. This is a non destructive process in that Enterprise Architect will not try and change or optimize any of your code and simply generate the UML class diagrams from the work you have done. This takes about 10 seconds.
From here you will have a new view on how your applications are put together and may find some ways of improving the design. At this point, if you choose, you can synchronize the model with your code again or make the changes to the code manually and sync the code with the model.
The other advantage is that you can now start building up a library of your code patterns which you can use to build your future applications quickly. As you have already solved those design problems in the past, you can just copy them from the previous project into your new project model. A good example of this a game engine - it basically stays the same from game to game, just the way the rest of the project interacts with that game engine changes.
Couple that with the extra features you get from modeling tools, including automatic documentation and integrated requirements management. You will find your projects should start to flow a lot smoother.
Code modeling is more than just UML, but its a good start. If i have been unclear about any point, feel free to ask!