kappa coefficient doesn't make sense I am calculating Cohen's Kappa to assess agreement. Here is my contingency table:
    0  1
0  23  17
1  59  457

So the observed probability of agreement is high (0.86). However, Kappa is 0.3, which implies poor agreement. It doesn't make sense to me. How to interpret it or is it a paradox of Kappa Coefficient? Is there any other way I can calculate the probability of agreement?
 A: Your use of R is incidental to this as a statistical question migrated from SO to CV, so let's recast the problem as one for Stata. The 2 $\times$ 2 table in the question is here translated into frequencies for row and column identifiers. The kappa coefficient is, as you report, 0.31, while the probability of agreement is 0.80. But kappa is not a probability, just a measure of agreement relative to chance agreement. Its value here is perhaps best described as fair, but qualifies as significant at conventional levels. 
. kap row col [fw=pop]

             Expected
Agreement   Agreement     Kappa   Std. Err.         Z      Prob>Z
-----------------------------------------------------------------
  86.33%      80.18%     0.3104     0.0392       7.92      0.0000

. tabchi row col [fw=pop]

          observed frequency
          expected frequency

----------------------------
          |       col       
      row |       1        2
----------+-----------------
        1 |      23       17
          |   5.899   34.101
          | 
        2 |      59      457
          |  76.101  439.899
----------------------------

          Pearson chi2(1) =  62.6544   Pr = 0.000
 likelihood-ratio chi2(1) =  43.7473   Pr = 0.000

. di (5.899 + 439.899) / 556
.80179496

In short, kappa is not a probability: its maximum can be 1 but 0 indicates agreement with chance expectations (i.e. independence of rows and columns) and negative values are possible. If you prefer a probability, you have one to hand!
The Stata manual entry is accessible to all here and provides an entry into relevant literature. 
tabchi as used here can be installed in Stata using ssc inst tab_chi. 
A: This sort of question requires a context for interpretation. There is no such thing as a definite line dividing possible results. 
You are working with this table to which I've added a couple of labels:
    T   0  1
  D 0  23  17
    1  59  457

Let's imagine that you are a doctor and the "T" values are from a test and "D" is the presence of a disease and you were hoping to use that test for prediction. If the Test = 0 then it's wrong over half the time, more like 2/3rds of the time. If the disease is present then it predicts right diagnosis about 85% of the time, (but it does so in a heavily diseased population). Furthermore when the disease is not present (reading along the first row) the test is right about half the time. (The first column is the reason the kappa is so low. If those values had been reversed the accuracy would go up a bit, but the kappa would jump to 0.705)
So it would be what would be considered a modestly useful effort but not something that would necessarily decide the issue. If this were a candidate test and there were already better tests available it would be simply discarded. If this were early in the understanding of the disease this might be the best that could be done at the time. Context.... it's all about context.
And in this case might find slightly different results based on your choice of software. The CI (but not the point estimate)  for "kappa" might come out differently if you use R:
 psych::cohen.kappa(matrix(c(23,59,17,457), 2))
#-------------
$kappa
[1] 0.3103538

$weighted.kappa
[1] 0.3103538

$n.obs
[1] 556

$agree
           [,1]       [,2]
[1,] 0.04136691 0.03057554
[2,] 0.10611511 0.82194245

$weight
     [,1] [,2]
[1,]    1    0
[2,]    0    1

$var.kappa
[1] 0.003370018

$var.weighted
[1] 0.003370018

$confid
                     lower  estimate     upper
unweighted kappa 0.1965743 0.3103538 0.4241334
weighted kappa   0.1965743 0.3103538 0.4241334

