Ahhhh… usability! An endless topic! 
In general, you should try to support several different modes because different people prefer different input devices. But if you are building a game as a learning experience rather than as a commercial endeavor then it just depends on how much effort you want to put into it.
For the game I am currently working on, we use the MVC (model/view/controller) design pattern, so we can tweak how we get input, let people define their own key bindings, add accessibility features, etc. (the “controller”), without having to change the visual interface around (the “view”). The game data itself (the “model”) doesn’t really care about the input mechanism.
We are using arrow keys for movement, but you can also use the mouse and click on “movement” buttons which do the same thing. You can click on game objects, but you can also go to “next unit”. Most of the interface for us is actually mouse-based because it’s a sim/strategy game and there’s a lot of things to select, so mouse works good for that. But we also have key bindings for most of the things that you can do with the mouse.
The important thing is to be consistent. If you force people to use the mouse, then they should be able to do everything easily with the mouse. If you force them to use the keyboard then you should let them do everything with the keyboard. Switching back and forth is the most annoying thing if you have to do anything more complex than “aim and shoot”.
Just my $0.02…