I have been working as a Graphic designer for the past 2 years. But some how I face little difficulty in choosing the right font and color for my designer work. So need ideas on improvising my work.
There is a lot that can be said about this subject. There is no short answer. Firstly, I advise you to refine your terminology, which will help guide you in further study. The real heart of what you're asking about is the art of "typography" or "type-setting". There are mountains of literature written on the subject. You can search for books and guides on the art of typography for days.
Secondly, typography is an fine art that takes years of experience and practice to master. You can pick one typeface (what you call a font) and use it in two different settings with other graphical elements, and the typeface will evoke a completely different feeling in each setting. The combinations and possibilities are infinite.
So how does one become good at this? I'll do my best to provide some guidelines, but know that I am NOT a master typography artist -- I'm just someone who spends a lot of time studying it and trying to get better myself.
Understand the purpose/motivation behind your design and the client's desires. You can greatly benefit by writing down a list of words that describe the feelings you want your design to evoke.
Get a font software (such as FontBase) that lets you look at hundreds or thousands of fonts very quickly. Go through the list and begin identifying fonts that you believe might evoke the feelings you want. The very hardest part of this is subtlety. Many designs don't need "loud" or "in-your-face" typefaces. If you need a subtle type face, you have to pay very close attention to the details in the letter forms to see how they make you feel.
Once you've picked several fonts that you think might work, start putting them in your design and see if how they work with the other elements. If your design is extremely minimalistic with almost no images, then you should get predictable results. However, if your design is heavy on images and variety of color, you will be amazed at how the character of the chosen typeface changes once it has colors and images with it.
Individual letter forms are called glyphs. Study them. Develop an eye for paying attention to the way the "tail" (descender) hangs from the 'g' or the 'y' in various typefaces. Pay attention to all the capital letters especially and notice how "ornate" they are. Just developing an eye for "ornateness" is a fundamental starting place. More ornate fonts tend to evoke a sense of "sophistication" "luxury" "decadence" "flashiness" or "flare". Is the design supposed to feel those things? But again, you will notice that everything changes with context. Very simple fonts with the least amount of detail can also be used to evoke luxury and sophistication in minimalist designs because of their "sharpness" and "cleanness". Do you see a theme yet? As I said, you must start thinking about feelings and emotions and learn words to describe them.
Serif vs Sans-Serif. Serifs are those extra little hooks you see on the ends of letter forms. You can write a book on teh history and emotional ties and culture behind serif and sans-serif fonts. Every culture will perceive serifs differently, especially in different contexts. I'm not going to even attempt to address this issue, since there is so much material to read on it. Your best bet is to look at designs that use serifs compared to designs that use sans-serifs and pay particular attention to the thoughts and feelings that come to your mind.
You really should be trying to reverse engineer your own experience. When you look at someone else's design that you think is great/beautiful/amazing, you should ask yourself "How does this make me feel?" "How do the words make me feel?" "How do the individual letter shapes make me feel?" "Does the meaning in the words change how the letters make me feel?" Once you start identifying these patterns and letting them settle in your mind, you can start recreating those feelings by picking typefaces based on what you've observed.
Realize that you will throw away most of your choices. When I design, I often look at more than 100 fonts in my own library (which contains thousands of fonts collected over decades), I narrow down the result to 10 to 20 fonts for a design and then I try them. I throw away all but one or two. :)
One single type "family" is powerful, and you can do amazing things with two "families". But don't push your luck with three or more in a single design. A "family" is one typeface that contains a set of italic, bold, slim, black, normal etc that are all designed to work together and packaged together as the same "font family". As I said, don't try to combine more than two of them unless you're doing something very ecentric.
Buy fonts. Seriously, if you visit font foundaries and look through their paid options, the fonts are a league above free fonts. Your work will improve instantly just by being willing to use high quality licensed fonts.
Learn to perform layout and typesetting with a casual (even boring) typeface. I can't emphasize this one enough. Pick an extremely basic font that doesn't evoke any strong feelings. Then practice just positioning words and phrases and letters. Experiment with resizing letters, shifting letters closer and farther apart, blowing words apart, aligning words along the edge of the page and jamming them into corners. Notice how different positions, sizes, etc makes you feel?
Study size and position relationships between elements. Its obvious that a tiny text underneath a larger image evokes a certain feel. If you make the text very large, it completely changes the feel. Spend a lot of time toying with this.
Typeset boring things and try to make it absolutely perfect. Try to layout a simple article with some subheadings, fleurons, and minimal decoration. Don't use pictures. Use only typographic elements. Notice how all the elements work together. Then repeat this same exercise but with something less boring with less text -- for instance a wedding invitation instead of a basic article.
These guidelines should give you different things to experiment with to try to improve your craft. Focus on two or three of them at the same time. Give it some rest. Then try to focus on two or three different ones. Design is exploratory. Since there are no right-or-wrongs, you have to keep reverse-engineering and testing yourself until you figure out what works for you. :)