Unfortunately, some kids are picky - however, drinking from the sippy all day could be part of the problem. Our pediatrician once said, particularly in the first three years, think of juice and milk as food, not as a drink - and serve accordingly. You wouldn't let your kid carry around a box of Cheerios all day and then be surprised if he wasn't hungry for meals. As one other mom said, you can offer them milk *after* they've eaten a meal. Also, break him of the sippy habit. He's old enough to be dealing with an open cup. Offer a drink with meals, and at specific snack times. If he asks for something at other times, offer him water in an open cup, and make him sit at the table to drink it, then go back to what he's doing. He may still be a picky eater for awhile, but I'm guessing cutting back on the drink-grazing will help. (Once you've broken the habit, you can use sippies when you're in the car or at the park or whatever - but use the open cup whenever you possibly can.)
Don't get discouraged by the pickiness. Continue to try new foods with him, too. It was around age 2 that we started the "one-bite rule" - you have to try one bite. It's OK if you don't enjoy the food you're trying, and you don't have to eat all of it, but you do have to try one bite. (One part of this that makes it work, however, is that, for example, he has to eat SOME vegetable. It's OK if he tries and refuses broccoli, but then he has to eat peas, or beans, or carrots, or another veggie that he does enjoy.) It's been surprising, too, how quickly his tastes change - something he turned down last month is suddenly discovered to be pretty good.
Good luck!