But, sometimes it is not working because user forget to tick the check box to assign using active assignment rule, worst the check box is located down at bottom of the page layout and it is not selected by default.
You can set the "Assign using active assignment rules" enabled by default, although for some scenarios this may be not a good option. So, if user does not want it to be assign to other user or queue, user need to untick it.
Here is the process to set it tick by default: Go to Setup | Customize | Leads or Cases | Page Layouts. Then click Layout Properties button, then enable Select by default and Show on edit page.
If you do not tick Show on edit page in Layout Properties, Optional related list with Assign using active assignment rules will be not visible when user create or edit Case or Lead. And the worst, Select by default will also not working (although you tick it), this will cause the whole Assignment Rule not working.