Keywords Meta-tag
I completely ignore the keywords meta-tag since most search engines ignore it. There are some exceptions such as Yandex. It is fairly safe for the major SEs to ignore this tag. However, it costs you nothing to have one if it is
convenient.
Description Meta-tag
As for the description meta-tag, both answers from John and Stephen are both correct. However, there are a few facts I would like to add.
What people forget is that search engines are actually to be taken in two parts. This is extremely important to know. One is the index with the fetch queue and any algorithms and metrices related to weighting the site and pages and has nothing to do with the query engine. The query engine is the other half that has algorithms and metrices of it's own. The difference is that the index stores metrics and the query engine does not (effectively) except for the query itself so that it can be studied. Each has it's purpose. For example, when a page is fetched and indexed, various algorithms are applied and metrics stored. Granted. The difference is that this is done in a relative vacuum with no ability to compare the page or site to others. This is what the query engine does. It takes the query, applies algorithms against to the query, creates a series of queries, and then applies algorithms to the result sets to create a single cohesive result. Why this is important to know is that ranking and metrics are applied in two parts and that each set has a specific purpose that do not over-lap.
The description meta-tag, if managed properly will be shown as the SERP snippet. We all know this. What is often forgotten is that the description meta-tag has enjoyed certain privileges in Google along with the title tag from the very beginning and for a good reason. The Google query engine actually makes several queries and blends the query results into a single weighted result set to pass to the filters. Of these queries, there is at least a query against the title tag, the description meta-tag, the h1 tag, and the content itself. Add to it, queries for different analysis scenarios found in the search query itself and potentially others.
The fact is that the description meta-tag is indexed just like the title tag, however, it does not provide weight to the page content itself within the index. This differs in some respect to the title tag in that semantic topical scores and other semantic analysis of the title tag will in some form or another be applied to the content through martices or metrics of metrics. This allows weighting of the title tag, the content, and the two combined. This is not the case for the description meta-tag.
Where the description meta-tag shines is if terms used in the search query are found in the description meta-tag. When this happens, additional scoring may be applied in the search query filters. Not much, however, the description meta-tag can boost placement in the SERPs over other similar ranking pages that do not have the search terms in the description meta-tag. It is a boost, but can only boost one or two positions within a reasonably narrow window of conditions where it is relevant. Still, it is important.
For that reason, I always suggest over time that the site owner track the terms actually used to find the page or similar pages on their site. Then the description meta-tag should be adjusted to use the primary search terms in as natural and conversational a way possible. You will know you are having success if the majority of the search queries for a given page will highlight search terms within the SERP snippet. This is the last step in the SERP filters and used only in rendering the page. Any thought that direct search terms matches against the description meta-tag would be almost completely wrong.
Consider also that for description meta-tags that are not managed well, Google will use search matches within content for the SERP snippet.
As for whether a description meta-tag should be used or not, it depends. Sometimes yes. Sometimes no. It may not always be practical to edit a description meta-tag to be truly effective. For static pages such as articles, it is very possible and likely to generate a highly effective description meta-tag, however, for dynamically driven pages, it may not be. Because in some cases the search engine will chose a compelling content snippet based upon the search query, some site owners choose to not use a description meta-tag to force the search engine to use a content snippet. And why not? Search engines are fairly good at it! It is in this respect that not having a description meta-tag becomes an effective tool.