I am a C# winforms developer with an experience of around a year. The only unit testing that I have been doing till now has been manual. I have thinking about following for
Why do we need to have automated unit testing? How effective is it?
You don't. It is up to you to decide if you want to or not. It will only be as effective as you make it. You should go for automation only if your going to repeat testing cycle for a piece of code more than 3 times!!! If I want to start doing automated unit testing. Where should I start from? (have heard about nunit)
Whatever feels comfortable, make it your start point and then explore it and use it to your advantage. Can we also test GUI with automated unit testing or is it just business logic?
You can but you should not. GUI is better tested manually. Eyes will catch more errors in the interface than a machine will. Have heard about mocking frameworks. Are they also for unit testing?
Yes most of the frameworks like TestNG, Junit etc are for Unit Testing.